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

C++构建函数使用介绍

构造函数概念:

构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次(创建对象)

作用:

创建一个对象(面向对象,第一步肯定得创建对象)并且数据成员都有初始数值(数值有初始化和赋值)

初始化和赋值区别

  • 初始化(数值在构建函数中给予)
  • 赋值(数值在构建函数完成之后给予)

初始化(数值在构建函数中给予)

1

2

3

4

5

6

7

8

9

10

11

#ifndef __COMPLEX__

#define __COMPLEX__

classcomplex

{

public:

complex(doubler = 0,doublei = 0)

: re(r), im(i) {}//初始化

private:

doublere, im;

};

#endif // !__COMPLEX__

1

2

3

4

5

6

#include"complex.h"

intmain()

{

complex c1(1, 1);

return0;

}

1.调用构造函数

2.创建对象名字为c1

3.对象中数据成员与函数参数对应,进行数值给予,生成对象的数据成员顺序是类中private的顺序

4.对象c1创建成功

赋值(数值在构建函数完成之后给予)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#ifndef __COMPLEX__

#define __COMPLEX__

classcomplex

{

public:

complex(doubler = 0,doublei = 0)//名字与类名相同

{

re = r;

im = i;

}

private:

doublere, im;

};

#endif // !__COMPLEX__

1

2

3

4

5

6

#include"complex.h"

intmain()

{

complex c1(1, 1);

return0;

}

1.调用构造函数

2.创建对象名字为c1

3.构建函数中没有初始化,编译器自动加上初始化操作,对数据成员进行随机数初始化

4.对象c1创建成功

5.函数中输入的两个参数,函数执行命令行,对数据进行赋值

如何得知两则区别

tihs指针

this指针中存储的是自己对象的地址

在两者构造函数中使用this指针,初始化操作因为类对象完成初始化前,类对象还未形成,所以会对this报错

初始化中使用this

1

2

3

4

5

6

7

8

classcomplex

{

public:

complex(doubler = 0,doublei = 0)

:this->re(r),this-> im(i) {}

private:

doublere, im;

};

error: expected '{' before 'this'

赋值中使用this

1

2

3

4

5

6

7

8

9

10

11

classcomplex

{

public:

complex(doubler = 0,doublei = 0)

{

this->im = r;

this->re = i;

}

private:

doublere, im;

};

到此这篇关于C++构建函数使用介绍的文章就介绍到这了


http://www.jsqmd.com/news/1178910/

相关文章:

  • Dev-C++ 5.11 连接 MySQL 8.0:3步配置与4类CRUD操作完整代码
  • Notepad++ HexEditor 插件 0.9.5 版本:二进制文件查看与常见编辑问题解析
  • MAX77654与PIC18F85J10的低功耗电源管理方案
  • Unity编辑器扩展实战:MenuItem与ContextMenu高效开发指南
  • Sunny 网络中间件 v3.1.0 实战:拦截并修改 HTTP/WS/TCP 3类协议数据
  • Windows 11 Build 26300.8068开发环境安装与性能优化指南
  • 仰望星空与脚踏实地:LBS 领域那些技术与成本难兼顾的“真痛点”
  • 微信小程序抓包 2025:3款主流工具(BurpSuite/Charles/Reqable)对比与实战配置
  • 广州建博会收官观察:我发现奇兵到家可能是家居商家最该关注的售后平台
  • MCP3551与MK24FN256VDC12高精度数据采集系统设计
  • C++手搓矩阵运算库:从内存管理到算法优化的实战指南
  • 遗传算法实操变形:连续编码、多目标与约束处理工程指南
  • 太原 GEO 优化怎么收费?2026本地 GEO 代运营收费标准详解
  • Python复刻植物大战僵尸:从游戏循环到打包分发的完整实战指南
  • Unity打包后UMP视频黑屏?5大核心原因与系统化解决方案
  • UE5场景捕获与渲染目标:5分钟搭建动态监控摄像头系统
  • 2026 年 7 月新发布:栾城热门的齿形钢格板订做厂家深度解析,它一出场,让防滑问题彻底死心塌地 - 企业信息推荐【官方】
  • Oryol框架下实现100KB以下WebGL应用的极致优化实践
  • ping “一般故障” vs “请求超时”:3个关键差异与7层网络模型定位法
  • UE4/UE5 Sequencer电影感运镜:从分镜到渲染的实战指南
  • CDMA网络规划实战:基于专利CN1549483A的容量与覆盖平衡迭代算法解析
  • 编译原理实战:手写词法分析器(C++实现),识别 5 类 Token 并输出符号表
  • Unity集成Steamworks.NET成就系统:从配置到上线的全链路实战指南
  • 遗传规划 (GP) vs 遗传算法 (GA):3个维度对比与5个典型应用场景分析
  • Gifsicle + FFmpeg + Gifski:3 工具协同打造高质量 GIF 的完整工作流
  • Godot引擎2D游戏开发:动画树、自动瓦片与昼夜系统实战
  • Git 配置实战:5个高效别名与 core.editor 跨平台设置指南
  • Git 分支命名与版本号映射:基于 4 种主流工作流的实战对比与选择指南
  • C++构造函数的初始化列表详解
  • 2026 年泗水正规的搪瓷储罐供应厂家有哪些,打破认知:它竟不是金属,却扛住十年强酸腐蚀? - 行业甄选官