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

网站建设营销外包公司排名中国交通建设监理协会网站打不开

网站建设营销外包公司排名,中国交通建设监理协会网站打不开,网站运作流程,北京推广营销目录 一、初始化和清理 二、拷贝复制 三、取地址重载 四、重要说明 五、注意事项 六、示例代码 在C中,当一个类没有显式定义某些成员函数时,编译器会自动生成6个默认成员函数。这些函数可以分为以下几类: 一、初始化和清理 1、构造函数…

目录

一、初始化和清理

二、拷贝复制

三、取地址重载

四、重要说明

五、注意事项

六、示例代码


        在C++中,当一个类没有显式定义某些成员函数时,编译器会自动生成6个默认成员函数。这些函数可以分为以下几类:

一、初始化和清理

1、构造函数:在对象创建时完成初始化工作

  • 如果没有定义,编译器生成默认构造函数(无参、函数体为空)

  • 对于内置类型不做初始化,自定义类型会调用其默认构造函数

class Date {
public:// 构造函数Date() {// 初始化代码}
};

2、析构函数:在对象生命周期结束时完成清理工作

  • 如果没有显式定义,编译器生成默认析构函数(函数体为空)

  • 默认析构函数对内置类型不做处理,对于自定义类型成员,会调用其析构函数

    class Date {
    public:// 析构函数~Date() {// 清理代码}
    };


二、拷贝复制

1、拷贝构造函数:使用同类对象初始化创建新对象

  • 如果没有显式定义,编译器会生成默认的拷贝构造函数

  • 默认生成的拷贝构造函数进行浅拷贝(逐成员拷贝、按字节拷贝)

  • 对于指针成员需要自定义实现深拷贝

    class Date {
    public:// 拷贝构造函数Date(const Date& d) {// 拷贝逻辑}
    };

2、赋值运算符重载:把一个对象赋值给另一个已存在的对象

  • 如果没有显式定义,编译器会生成默认的赋值运算符,默认生成的进行浅拷贝

  • 需要处理自赋值问题和释放原有资源

    class Date {
    public:// 赋值运算符重载Date& operator=(const Date& d) {if (this != &d) {// 赋值逻辑}return *this;}
    };

三、取地址重载

1、普通对象取地址运算符重载:普通对象的取地址操作

  • 默认实现返回对象地址

  • 极少需要自定义实现

2、const对象取地址运算符重载:const对象的取地址操作

  • 默认实现返回对象地址

  • 极少需要自定义实现

class Date {
public:// 普通对象取地址Date* operator&() {return this;}// const对象取地址const Date* operator&() const {return this;}
};
  • 这两个运算符通常不需要显式实现

  • 编译器生成的默认版本就能满足大多数需求


四、重要说明

  1. 前4个成员函数(构造、析构、拷贝构造、赋值重载)最为重要,需要重点掌握

  2. 后2个取地址重载函数在实际开发中很少需要自定义实现

  3. C++11新增了移动构造函数和移动赋值运算符,属于高级特性

  4. 默认生成的函数行为:

    • 对于内置类型不做处理

    • 对于自定义类型成员会调用其相应成员函数


五、注意事项

  1. C++11之后新增了移动构造函数和移动赋值运算符

  2. 默认生成的函数行为可能不满足需求(特别是涉及资源管理时),需要显式实现

  3. 对于包含指针成员或需要资源管理的类,通常需要自定义拷贝构造函数和赋值运算符


六、示例代码

class Date {
private:int year;int month;int day;public:// 1. 构造函数Date(int y = 1970, int m = 1, int d = 1) : year(y), month(m), day(d) {}// 2. 析构函数~Date() {}// 3. 拷贝构造函数Date(const Date& other) : year(other.year), month(other.month), day(other.day) {}// 4. 赋值运算符重载Date& operator=(const Date& other) {if (this != &other) {year = other.year;month = other.month;day = other.day;}return *this;}// 5. 取地址运算符重载(通常不需要实现)Date* operator&() { return this; }const Date* operator&() const { return this; }
};
http://www.dtcms.com/a/534730.html

相关文章:

  • 免费手机建站平台wordpress调用page
  • 网站开发概要设计二建报名时间2023年报名时间
  • ps做图游戏下载网站有哪些内容网页设计改版
  • 定制家具网站平台网站开发就业培训班
  • 网站建设的网站分析怎么写做直播网站赚钱吗
  • 有什么网站可以做婚庆视频素材靖安县城乡规划建设局网站
  • 外国做爰网站wordpress多站批量发布
  • 网站调用字体电商运营数据分析表格
  • 做一个招聘信息的网站_用什么做网站的软件公司电子商务网站建设规划方案
  • 网站建设的意义以及重要性宋朝网站应该怎么做
  • 注册网站需要房产证多用户商城源码下载
  • 昆明专业网站建设的公司网络平台运营计划方案
  • 男女做爰高清免费网站免费3d建模软件
  • 佛山网站建设机构wordpress 满屏主题
  • 沙坪坝网站开发WordPress简单百度站长插件
  • 便宜建站vps永安市建设局网站
  • 北京网站制作与网站设计化妆品网站的建设 论文
  • 泉州网站建站模板中国交通建设集团有限公司是央企
  • 华为云建站和阿里云建站区别国内seo公司排行榜前十名
  • SaaS网站可以做seo嘛wordpress代码编辑插件
  • 自己做网站用软件嵌入式开发工程师是干嘛的
  • 路桥区商用营销型网站建设个人 网站 备案
  • 免费h5网站制作平台二级域名网站好不好
  • 推荐上海网站建设做视频播放网站 赚钱
  • 优惠券的网站怎么做的在哪里购买域名
  • 网站设计案例公司农村办厂暴利项目
  • 0基础网站建设教程视频网站建设刷赞和vip
  • 模板设计建站设计公司画册模板
  • 深圳集团网站建设案例关于seo的行业岗位有哪些
  • 懒人手机网站公司做网站怎么构思