之前不知道為什么調用無參構造函數不能加(),是因為加上了()這樣的形式就和函數聲明語句一樣了
#include<bits/stdc++.h>
using namespace std; const int maxn=1e5+5; class people{ public: people(){ printf("123\n"); } }; class student :public people{ public: int x=1; //調用下面這個構造函數,如果不傳參數會和 student()重復,如果傳一個參數會和 student(int x)重復 // student(int x=2,int y=1){ // printf("111\n"); // }
student(int x){ printf("222\n"); } student(){ printf("5555\n"); } }; int main() { //下面這樣寫不是調用類的無參構造函數,而是一個函數的聲明(可不是創建一個student類型的對象)。所以調用無參構造函數不要加() //student stu();
student stu; printf("%d\n",stu.x); return 0; }