欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > c++拷贝构造函数

c++拷贝构造函数

2026/4/19 22:42:23 来源:https://blog.csdn.net/qq_45361567/article/details/143492758  浏览:    关键词:c++拷贝构造函数

1.拷贝构造函数

拷贝构造函数的调用时机

class A
{
public://默认构造函数A(){m_Hp = 100;cout << "A默认构造函数调用完毕" << endl;}//有参构造函数A(int hp){m_Hp = hp;cout << "A有参构造函数调用完毕" << endl;}A(const A& a){m_Hp = a.m_Hp;cout << "A拷贝构造函数调用完毕" << endl;}~A(){cout << "A析构函数调用完毕" << endl;}private:int m_Hp;
};

1.用已经创建过的对象来初始化对象

void func1()
{cout << "---------func1----------" << endl;A a1(10);A a2(a1);
}

在这里插入图片描述

2.函数的传参
A a = a1;等效于A a(a1);

void test(A a)
{}void func2()
{cout << "---------func2----------" << endl;A a1;test(a1);
}

3.函数的返回值

A test3()
{A a(40);return a;
}
void func3()
{cout << "---------func3----------" << endl;A a = test3();
}

2.初始化列表


class Hero
{
public:Hero(string name,int hp):m_Name(name),m_Hp(hp){}void Print(){cout << "英雄:" << m_Name << "的血量是" << m_Hp << endl;}private:string m_Name;int m_Hp;
};int main()
{Hero h("李白", 100);h.Print();
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词