本文純屬個人見解,是對前面學習的總結,如有描述不正确的地方還請高手指正~
載重特别的一個:
void name() const; // 隻能被const類型的對象調用
void name(); // 被一般的對象調用
是個載重的函數,載重可以以函數類型和個數,以及函數限制符(const)來别區載重的函數
C++主動供提了上面這些成員函數:
認默構造函數,如果沒有義定構造函數
複制構造函數,如果沒有義定
指派操作符,如果沒有義定
認默析構函數,如果沒有義定
位址操作符,如果沒有義定。
載重 << 操作符
義定上面元友
ostream & opeartor << (ostream & os, const c_name & obj)
{
os << ...;
return os;
}
複制構造函數的一般情勢
每日一道理
我把卷子攤在課桌上,恨不得敲一陣鑼,叫大家都來看看我這光彩的分數。
class name(const classname &);
複制構造函數被調用的情勢:
假設 A 是一個string對象
string B(A)
string C = A
string D = string(A)
string *E = new string(A);
還有每當編譯器成生副本都調用複制構造函數。具體來說,當函數安值傳遞對象或函數傳回對象時,調用複制構造函數。
c_name & c_name::operator = (const c_name & cn)
{
if(this == &cn)
return *this;
delete[] c_pointer; //放釋原類中的指針指向的容内
c_pointer = new type_name[size];
......
return *this;
}