設計乙個陣列類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描述...