当前位置: 首页 > news >正文

张斌网站建设建设的优质网站

张斌网站建设,建设的优质网站,中国机械加工信息网,学校网站建设分工上规则 // 默认情况下,c 编译器至少给一个类添加三个函数 //1.默认构造函数(无参,函数体为空) //2.默认析构函数 (无参 ,函数体为空) //3.默认拷贝函数,对其属性进行值拷贝 //构…

上规则

// 默认情况下,c++ 编译器至少给一个类添加三个函数

//1.默认构造函数(无参,函数体为空)

//2.默认析构函数 (无参 ,函数体为空)

//3.默认拷贝函数,对其属性进行值拷贝

//构造函数调用规则:
//如果用户定义有参构造函数,c++不再提供默认无参构造函数,但是会提供默认拷贝函数
//如果用户定义拷贝构造函数,c++不会再提供其他构造函数

正文

假设我们有一个简单的类 Person,表示一个人的信息,包括姓名和年龄。首先,我们不定义任何构造函数、拷贝构造函数或析构函数,看看编译器会为我们自动生成什么函数。

#include <iostream>
#include <string>class Person {
public:std::string name;int age;
};int main() {Person person1; // 默认构造函数被调用person1.name = "Alice";person1.age = 30;Person person2 = person1; // 默认拷贝构造函数被调用return 0;
}

在这个例子中,我们定义了一个 Person 类,它具有两个属性:name 和 age。在 main 函数中,我们首先创建了一个名为 person1 的 Person 对象。由于我们没有定义任何构造函数,编译器为我们生成了默认构造函数。这个默认构造函数没有参数,函数体为空,所以我们可以使用 Person person1; 来创建一个空的 person1 对象。

接着,我们将 person1 的值拷贝到 person2 中,这时默认拷贝构造函数被调用。默认拷贝构造函数会逐个复制成员变量的值,所以 person2 会与 person1 具有相同的属性值。

现在,让我们定义一个有参构造函数和一个拷贝构造函数,看看它们如何影响默认函数的生成和构造函数的调用规则:

#include <iostream>
#include <string>class Person {
public:std::string name;int age;// 有参构造函数Person(const std::string& n, int a) : name(n), age(a) {std::cout << "Parametric constructor called" << std::endl;}// 拷贝构造函数Person(const Person& other) : name(other.name), age(other.age) {std::cout << "Copy constructor called" << std::endl;}
};int main() {Person person1("Alice", 30); // 有参构造函数被调用Person person2 = person1; // 拷贝构造函数被调用return 0;
}

在这个例子中,我们定义了一个有参构造函数和一个拷贝构造函数。现在,由于我们定义了有参构造函数,编译器不再为我们生成默认的无参构造函数。但是,编译器仍然会为我们生成默认的拷贝构造函数,因为我们没有定义拷贝构造函数时,编译器会提供默认实现。

在 main 函数中,我们首先使用有参构造函数创建了一个 person1 对象,然后将其值拷贝给 person2。由于我们定义了有参构造函数,编译器不再提供默认无参构造函数,但仍提供默认拷贝构造函数。因此,拷贝构造函数被调用来复制 person1 的值给 person2。

总结一下:

默认构造函数:如果没有定义任何构造函数,编译器会为你提供默认的无参构造函数。
默认拷贝构造函数:如果没有定义拷贝构造函数,编译器会为你提供默认的拷贝构造函数,用于值拷贝对象。
构造函数调用规则:如果你定义了有参构造函数,编译器不再提供默认无参构造函数,但仍提供默认拷贝构造函数。如果你定义了拷贝构造函数,编译器不再提供其他构造函数。
这些规则有助于理解C++中的构造函数和默认函数生成规则。

http://www.yayakq.cn/news/464434/

相关文章:

  • 企业资质证书查询官方网站最好网站建站公司
  • 教做网站久久星柔力球拍
  • 二级学院英语网站建设通知西安自助建站做网站
  • 策划方案免费网站wordpress修改底部联系QQ
  • 成都装修网站建设多少钱上海网络推广教程
  • 免费 开源 企业网站婚纱销售网站
  • 网页设计制作网站首页wordpress商城视频
  • 门户网站建设方案 模板wordpress Dux1.5下载
  • 网站怎么做长截图中小型网站有哪些
  • 随州建设网站wordpress自动连接
  • 长春好的做网站公司wordpress wp_update_post
  • 网站备案名称更换小程序代码大全
  • 官方商城网站建设河南郑州百姓网
  • 网站建站的步骤流程酒店预订网站开发
  • 单页网站seo如何优化定制产品网站有哪些
  • 沈阳网站建设搭建企业网络推广分析
  • 河南省建设协会网站北京网站建设价格天
  • 网站建设开票属于什么服务135编辑器可以给wordpress
  • 机关门户网站建设管理情况vs2012网站开发课程设计
  • 淘宝和Wordpress苏州网站快速排名优化
  • 网站联合推广方案富阳网站设计
  • 网站建设 类保定网站制作方案
  • 潍坊市城市建设官网站四川销售应用app
  • 建设网站公司专业长沙小红书推广公司
  • 中小企业网站建设与管理赚钱秒到账的游戏
  • 网站做网络营销松原手机网站开发公司
  • 网站建设策划书网站发布与推广phpcms中英文网站模板
  • 国内免费设计素材网站最好的网站模板网站
  • 跨平台 移动网站开发德阳网站开发熊掌号
  • 织梦做中英文网站步骤自己做自己的私人网站