close
宣告class的變數會用到,如果沒有寫,
系統會有一個"預設建構子",
但是當你有寫建構子時,就會去除,
還有class的預設是private,一定要寫在public不然會錯,
test() = default; 來建立一個預設建構子,
就跟 test(){}是一樣的,看個人用法,
接下然是給值方式,相同名稱一般都會用this.a = a ,
但是也可以用 test(int a, int b):a(a),b(b){} ,很方便的,
這也是看個人用法,然後this這個keyword,
是指標, test *t = this; ,
接下來解建構子 ~test(),就只會有一個,
不能有參數,會在物件銷毀執行,在這就是在return 0; 執行。
#include <iostream>
class test{
public:
int a;
float b;
test() = default;
test(int a, float b):a(a),b(b){} //給值方式
test(int a){
test * t = this; //this的真面目
t->a=a; //給值方式
(*t).a=a;
this->a =a;
}
~test(){std::cout<<"hello"<<std::endl;} //解建構子,不能有參數
};
int main(){
test t1();
test t2(45);
test t3(45, 12.5f);
return 0; //~test() 在這執行,由於有3個test的變數,所以會執行~test()三次
}
記得有一次在寫時忘記把test() = default;寫在public裡面,
結果執行一直不過,就是因為那一點小缺失,那時的我真的把他,
忽略掉了,所以切記切記。。:.゚ヽ(*´∀`)ノ゚.:。
文章標籤
全站熱搜