#include<iostream>
#include<string>
using namespace std;
class phone {
public:
string pName;
int pNumber;
phone() {
cout << "phone的默认构造函数的调用";
};
phone(string name, int number) {
pName = name;
pNumber = number;
}
};
class person {
public:
string myName;
phone myPhone;
person(string Name,int pNumber,string pName){
myName = Name;
myPhone.pNumber = pNumber;
myPhone.pName = pName;
}
};
int main() {
person p("abc", 123, "huawei");
cout << p.myName << endl<< p.myPhone.pName << endl << p.myPhone.pNumber<<endl ;
}
因为在class phone中定义了自定义构造函数,那么编译器不会默认创建默认构造函数,然而在class person中并未使用phone的自定义构造函数,故编译器会调用phone的默认构造函数,却没有合适的构造函数可用,故报错:没有合适的默认构造函数可用。