C++學習筆記-----類和建構函式

万舜發表於2024-06-13

類和結構體

classstruct的區別在於class預設是private的而struct預設是public的
struct 繼承自另一個 struct 或 class 時,預設繼承方式是 public 繼承
class 繼承自另一個 class 或 struct 時,預設繼承方式是 private 繼承
class 繼承自 struct,則預設繼承方式還是 public,以保持 struct 的開放性
兩者的記憶體位置取決於其宣告建立的位置,區域性函式則存於棧,全域性則存於全域性區

建構函式和解構函式

建構函式:非成員函式,並且在建立物件時由編譯器自動呼叫執行一次,可以過載
解構函式:在物件銷燬時自動呼叫,回收記憶體空間,只有一個並且無參
建構函式可以在建立物件時使用小括號把構造引數傳進去,以下是建構函式中無參、有參、複製的示例:

class Person{
public:
	int age;
	Person(){
		cout<<"non-parameter constructor "<<endl;
	}
	Person(int a){
		age = a;
		cout<<"Parameterized constructor"<<endl;
	}
	Person(const Person &p){
		age = p.age;
		cout<<"copy constructor "<<endl;
	}
	~Person(){
		cout<<"Destructor function call "<<endl;
	}
};
void test(){
	Person p1;
	Person p2(10);
	Person p3(p2);
}
int main(){
	
	test();
	
	system("pause");
	return 0;
}

相關文章