C 用多型實現簡單異常處理

2021-10-11 17:42:35 字數 1996 閱讀 8535

設計乙個陣列類myarray,過載符號操作,

陣列初始化時,對陣列的個數進行有效檢查

1)index<0 丟擲異常enegtive

2)index=0 丟擲異常ezero

3)index>1000 丟擲異常etoobig

4)index<10 丟擲異常etoosmall

4)esize類是上述類的基類,實現有參構造,定義virtual void printerr()輸出錯誤

esize.hpp

#pragma once

#define _crt_secure_no_warnings

#include

#include

#include

#include

using

namespace std;

class

esize

;class

enegtive

:public esize

public

:void

printerr()

private

:int mindex;};

class

ezero

:public esize

public

:void

printerr()

private

:int mindex;};

class

etoobig

:public esize

public

:void

printerr()

private

:int mindex;};

class

etoosmall

:public esize

public

:void

printerr()

private

:int mindex;

};

myarray.hpp
#pragma once

#define _crt_secure_no_warnings

#include

#include

#include

#include

#include

"esize.hpp"

class

myarray

;myarray::

myarray()

myarray::

myarray

(int num)

if(mlen >

1000)if

(0< mlen <10)

mbuf =

newint

[mlen];}

myarray::

~myarray()

}int

& myarray::

operator

(int index)

main.cpp
#include

#include

"esize.hpp"

#include

"myarray.hpp"

using

namespace std;

void

playfunc()

catch

(esize &e)

//用基類接實現多型

catch(.

..)}

intmain()

異常處理機制比傳統的錯誤檢查方便,利用多型和異常結合,能夠大大的簡化**,該文供以後複習使用

多型實現條件:

1 、有繼承

2 、有虛函式重寫

3 、有基類指標指向派生類物件

這樣在基類指標呼叫重寫的函式時,就會發生多型

c 異常處理的實現

我們編寫的程式一般要滿足正確性 健壯性 易讀性和可復用性 可擴充套件性。健壯性指程式既能處理正確流程的情況,也能處理非法的錯誤的異常情況,提示使用者出現了什麼問題,一般由異常處理實現。在編寫小型的程式時,可以很容易發現程式的錯誤,異常提示顯得不那麼重要,但在大型的由多人共同完成的程式中往往難以發現出...

Python class,繼承和多型,異常處理

class 類class myclass def init self,val 初始化函式,self必須要有 self.val val def display self,s print s d s,self.val python中類和物件都是可以傳遞的。m myclass 100 進行物件傳遞 pri...

C語言實現異常處理

1.setjmp j 設定 jump 點,用正確的程式上下文填充jmp buf物件j。這個上下文包括程式存放位置 棧和框架指標,其它重要的暫存器和記憶體資料。當初始化完jump的上下文,setjmp 返回0值。2.以後呼叫longjmp j,r 的效果就是乙個非區域性的goto或 長跳轉 到由j描述...