類和結構體
class和struct的區別在於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;
}