重庆医疗网站建设,263企业邮箱官方入口网页版,浙江电商网络推广,西安昆奇网站建设目录 一、程序及输出1.1 编译器会给一个类 至少添加3个函数1.2 自己提供了 有参构造函数1.3 自己提供了 拷贝构造函数 二、分析与总结 一、程序及输出
1.1 编译器会给一个类 至少添加3个函数
编译器会给一个类 至少添加3个函数 默认构造#xff08;空实现#xff09; 析构函… 目录 一、程序及输出1.1 编译器会给一个类 至少添加3个函数1.2 自己提供了 有参构造函数1.3 自己提供了 拷贝构造函数 二、分析与总结 一、程序及输出
1.1 编译器会给一个类 至少添加3个函数
编译器会给一个类 至少添加3个函数 默认构造空实现 析构函数空实现 拷贝构造值拷贝
#includeiostream
using namespace std;class Person
{
public:int m_Age;
};
void test01()
{Person p1;//提供拷贝构造后要自己提供默认构造否则出错p1.m_Age 20;Person p2(p1);cout p2的年龄为 p2.m_Age endl;}int main(){test01();system(pause);return EXIT_SUCCESS;
}
什么构造函数都没写但是能正常运行因为此时编译器会有相对应的构造函数 输出
1.2 自己提供了 有参构造函数
如果我们自己提供了 有参构造函数编译器就不会提供默认构造函数但是依然会提供拷贝构造函数 如果不自己构造默认构造函数却使用空实现去构造
#includeiostream
using namespace std;//1、编译器会给一个类 至少添加3个函数 默认构造空实现 析构函数空实现 拷贝构造值拷贝
//2、如果我们自己提供了 有参构造函数编译器就不会提供默认构造函数但是依然会提供拷贝构造函数
//3、如果我们自己提供了 拷贝构造函数编译器就不会提供其他构造函数
class Person
{
public:Person(int age){m_Age age;cout 有参构造函数调用 endl;}int m_Age;
};使用拷贝构造去测试是否正常 输出
1.3 自己提供了 拷贝构造函数
如果我们自己提供了 拷贝构造函数编译器就不会提供其他构造函数 如果此时使用空实现和有参去构造都会报错
#includeiostream
using namespace std;//1、编译器会给一个类 至少添加3个函数 默认构造空实现 析构函数空实现 拷贝构造值拷贝
//2、如果我们自己提供了 有参构造函数编译器就不会提供默认构造函数但是依然会提供拷贝构造函数
//3、如果我们自己提供了 拷贝构造函数编译器就不会提供其他构造函数
class Person
{
public:Person(const Person p){m_Age p.m_Age;cout 拷贝构造函数调用 endl;}int m_Age;
};有参 空 二、分析与总结 1、编译器会给一个类 至少添加3个函数 默认构造空实现 析构函数空实现 拷贝构造值拷贝 2、如果我们自己提供了 有参构造函数编译器就不会提供默认构造函数但是依然会提供拷贝构造函数 3、如果我们自己提供了 拷贝构造函数编译器就不会提供其他构造函数