c++类对象作为类成员,最终为何8848没有被输出

#include <iostream>
using namespace std;
#include <string>
class Phone
{public:
    Phone(string pname)
    {
        pname=m_pname;
        cout<<"Phone的构造函数"<<endl;
    }
    ~Phone()
    {
        cout<<"Phone的析构函数"<<endl;
    }
    string m_pname;
    
};
class Person 
{
    public:
        Person(string name,string pname):m_name(name),m_phone(pname)
        {
            cout<<"Person的构造函数"<<endl;
        }
        ~Person()
    {
        cout<<"Person的析构函数"<<endl;
    }
        string m_name;
        Phone m_phone;
};
void test01()
{
    Person p("茂东","8848");
    cout<<p.m_name<<"拿的是:"<<p.m_phone.m_pname<<endl;
}

int main(){
test01();
system("pause");
return 0; 

参考GPT和自己的思路:

问题出在Phone类的构造函数中。在这个构造函数中,你错误地将m_pname赋值为pname(应该是pname=m_pname)。因此,在你创建Person对象时,Phone对象的m_pname成员没有被正确初始化,所以无法输出。要解决这个问题,你需要将Phone构造函数中的赋值语句改为pname=m_pname。