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

C++的构造函数

在现代 C++(尤其 C++11 以后),构造函数其实有五大核心类型

我给你系统讲清楚。


一、默认构造函数(Default Constructor)

class A {
public:A();   // 默认构造
};

特点

  • 没有参数
  • 或者所有参数都有默认值
  • 用来创建“空对象”

示例

A a;   // 调用默认构造

二、普通构造函数(Custom / Parameterized Constructor)

class A {
public:A(int x);
};

示例

A a(10);

你可以理解为:

普通构造函数 = 带参数的构造函数


三、复制构造函数(Copy Constructor)

class A {
public:A(const A& other);
};

什么时候调用?

A a1(10);
A a2 = a1;   // 复制构造

void func(A a);  // 传值

复制构造的核心作用:

用“已有对象”创建“新对象”


四、移动构造函数(Move Constructor)🔥(C++11 以后非常重要)

class A {
public:A(A&& other);
};

什么时候触发?

A a = A(10);   // 右值

return obj;   // 返回临时对象

它解决什么问题?

避免深拷贝,提高性能。

尤其是:

  • vector
  • string
  • 大内存对象

移动构造是现代 C++ 性能优化的核心。


五、委托构造函数(Delegating Constructor)

构造函数内部调用另一个构造函数。

class A {
public:A() : A(0) {}     // 委托A(int x) {}
};

六、explicit 构造函数(防止隐式转换)

class A {
public:explicit A(int x);
};

防止:

A a = 10;  // 不允许隐式转换

七、编译器自动生成的构造函数

如果你什么都不写,编译器会帮你生成:

  • 默认构造
  • 复制构造
  • 移动构造
  • 复制赋值
  • 移动赋值
  • 析构函数

这叫:

Rule of Three / Rule of Five


对比 C# 帮你理解

你是 C# 背景,我帮你对比一下:

C# C++
构造函数 构造函数
没有复制构造 有复制构造
没有移动构造 有移动构造
GC 管理 手动资源管理

C++ 比 C# 多出来的复杂度主要来自:

资源所有权问题


你现在学习阶段建议

如果你刚开始学类:

建议先掌握:

  1. 默认构造
  2. 普通构造
  3. 复制构造
  4. 析构函数

等理解“资源管理”后,再深入:

  • 移动语义
  • Rule of Five
  • RAII

最关键一句话总结

你问:

C++中的构造方法是不是分为:普通构造函数和复制构造函数?

准确回答:

❌ 不是
✅ 至少包括:

  • 默认构造
  • 参数构造
  • 复制构造
  • 移动构造(现代 C++ 必须掌握)

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

相关文章:

  • 全球六大地区求职机构推荐榜单!美国!加拿大!英国!澳洲!新加坡地区优质机构推荐(附UniCareer深度解析) - Matthewmx
  • 2026轿车托运服务商TOP5推荐:全国范围专业之选 - 十大品牌榜
  • 基于树莓派的远程温度监测系统设计
  • 2026年研发管理平台推荐:技术趋势深度评测,涵盖敏捷与瀑布场景管理痛点 - 十大品牌推荐
  • 聊聊2026年企业资质认证,江苏地区选哪家机构更靠谱 - 工业品网
  • 温度检测报警系统的设计与实现
  • 2026国内FFU厂家排名及实力企业推荐 - 品牌排行榜
  • 2026年FFU风机过滤单元有哪些品牌值得关注 - 品牌排行榜
  • 风控经理如何高效推进客户信用风控工作?
  • 2026高效送风口生产厂家排行榜:行业实力品牌推荐 - 品牌排行榜
  • 基于4b树莓派四足机器人AI视觉识别系统
  • 【2026 最新】PyTorch 安装配置详细指南 同时讲解安装CPU和GPU版本 小白也能轻松上手!逐步带图超详细展示(Windows 版)
  • 2026全国矿山施工企业实力TOP5|中钲矿山建设集团,资质齐全案例标杆 - 朴素的承诺
  • 聊聊2026年北京性价比高的网约车租赁平台服务选哪家 - 工业推荐榜
  • 基于4b树莓派机械臂的智能视觉识别与控制系统
  • 瀑布管理软件哪个好?2026年瀑布管理软件推荐与排名,解决跨部门协作核心痛点 - 十大品牌推荐
  • 当坚强化作温柔:疲惫时刻也需要一个拥抱
  • 2026年比较好的看护老人保姆,北京老人保姆,老人护理保姆公司采购优选指南 - 品牌鉴赏师
  • 指纹密码门禁系统的设计与实现
  • 2026 年 Blender 渲染引擎怎么选?Cycles 与 Eevee Next 使用场景全面解析
  • 2026年CRM系统深度剖析:核心价值、主流厂商、发展趋势与选型攻略 - 毛毛鱼的夏天
  • 英国及欧盟国家住宅一氧化碳报警器市场分析
  • 2026年诚信的原种黑猪批发基地品牌推荐榜单 - 品牌鉴赏师
  • 本科生必看!全网爆红的AI论文平台 —— 千笔ai写作
  • 探讨靠谱的驾校报名机构,上海春申驾校价格贵不贵 - myqiye
  • 智慧优洗管理系统开发
  • 海外盲盒小程序抽赏玩法分析(附跨境技术落地要点)
  • 学霸同款! 专科生专属论文神器 —— 千笔AI
  • 企业知识平台哪个好?2026年Confluence替代系统推荐与排名,解决扩展性与协同核心痛点 - 十大品牌推荐
  • 2026企业CRM选型全解:6款热门产品核心能力与适用场景大揭秘 - 毛毛鱼的夏天