1執行結果:#define _crt_secure_no_warnings
23 #include 4 #include
5 #include 6
7class
myclass8;
2223
//預設帶參建構函式
24 myclass::myclass(const
char *str)25
30else
3135 std::cout << "
預設帶參建構函式
"<< "
this addr:
"<< this
<<:endl>
3738
//預設析構函式
39 myclass::~myclass(void)40
46 std::cout << "
預設析構函式
"<< "
this addr:
"<< this
<<:endl>
4849
//預設拷貝建構函式
50 myclass::myclass(const myclass &m)51
56else
5761 std::cout << "
預設拷貝建構函式
"<< "
this addr:
"<< this
<<:endl>
6364
//預設過載賦值運算子函式
65 myclass & myclass::operator =(const myclass &m)66
74else
7579
}80 std::cout << "
預設過載賦值運算子函式
"<< "
this addr:
"<< this
<<:endl>
81return *this;82
}8384//
預設過載取址運算子函式
85 myclass * myclass::operator &()
8690
91//
預設過載取址運算子const函式
92 myclass const * myclass::operator &() const
9397
98//
預設移動建構函式
99 myclass::myclass(myclass &&m):
100m_pdata(std::move(m.m_pdata))
101105
106//
預設過載移動賦值操作符函式
107 myclass & myclass::operator =(const myclass &&m)
108118
119void
funa(myclass a)
120123
124void mytest1(void
)125
132133
void mytest2(void
)134
144145
void mytest3(void
)146
152153
void mytest(void
)154
163164
int main(int argc, char * ar**, char *envp)
165
C 類的預設函式
使用者自定義乙個類,簡單的可以看成是乙個新的型別,與c 標準裡面的資料型別使用差不多。但在物件導向程式設計中,我們知道任何乙個物件必須要通過建構函式才能建立,以及可以將乙個物件拷貝給另乙個物件,將乙個物件作為引數傳遞給乙個函式等。c 預設函式 既然是預設函式,那也就是說即便類裡面乙個成員函式沒有,這...
C 類的預設函式
每個成員函式都有乙個指標形參,它的名字是固定的,稱為this指標,this指標是隱式的。但是建構函式沒有這個隱含的this指標。編譯器會對成員函式進行處理,在物件呼叫成員函式時,物件位址作實參傳遞給成員函式的第乙個形參this指標。編譯器會對成員函式進行處理,在物件呼叫成員函式時,物件位址作實參傳遞...
C 類預設函式
在c 中,乙個類有八個預設函式 預設建構函式 預設拷貝建構函式 預設析構函式 預設過載賦值運算子函式 預設過載取址運算子函式 預設過載取址運算子const函式 預設移動建構函式 c 11 預設過載移動賦值操作符函式 c 11 只是宣告乙個空類,不做任何事情的話,編譯器會自動為你生成乙個預設建構函式 ...