| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- #include <iostream> 
 
 - using namespace std;
 
  
- class Phone{
 
 - public:
 
 -         Phone(string Name){
 
 -                 cout<<"Phone的构造函数调用" <<endl;
 
 -                 m_Pname = Name;
 
 -         }
 
 -         string m_Pname;
 
 - };
 
  
- class Person
 
 - {        
 
 - public:
 
 -         Person(string pname,string Pname)
 
 -         {                                                      //这里报错了
 
 -                 m_Pname = pname;
 
 -                 m_Phone.m_Pname = Pname;    //不可以在Person类初始化的时候给Phone的一个成员m_Pname赋值吗
 
 -         }
 
 -         string m_Name;
 
 -         Phone m_Phone; 
 
 - };
 
  
 
- void test01(){
 
 -         Person p1("XXX","Iphone 12 pro max");
 
 -         cout<<"姓名:"<<p1.m_Name<<endl; 
 
 -         cout<<"所用手机:"<<p1.m_Phone.m_Pname<<endl;
 
 - }
 
  
- int main(){
 
 -         test01();
 
 -         system("pause");
 
 -         return 0;
 
 - }
 
  复制代码 
两个问题,给你写了注释 
- #include <iostream> 
 
 - using namespace std;
 
  
- class Phone{
 
 - public:
 
 -         Phone(string Name){
 
 -                 cout<<"Phone的构造函数调用" <<endl;
 
 -                 m_Pname = Name;
 
 -         }
 
 -         Phone(){}//第二、你在class Person中第20行写的形式这里需要有这个默认构造函数否则就会出错。
 
 -         string m_Pname;
 
 - };
 
  
- class Person
 
 - {        
 
 -     public:
 
 -         Person(string pname,string Pname)
 
 -         {                                                      //这里报错了
 
 -             m_Name = pname;          //第一、这里拼写错误
 
 -             m_Phone.m_Pname = Pname;    //不可以在Person类初始化的时候给Phone的一个成员m_Pname赋值吗
 
 -         }
 
 -         string m_Name;
 
 -         Phone m_Phone; 
 
 - };
 
  
- void test01(){
 
 -     Person p1("XXX","Iphone 12 pro max");
 
 -     cout<<"姓名:"<<p1.m_Name<<endl; 
 
 -     cout<<"所用手机:"<<p1.m_Phone.m_Pname<<endl;
 
 - }
 
  
- int main(){
 
 -     test01();
 
 -     system("pause");
 
 -     return 0;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |