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

C++成员对象和封闭类

C++成员对象和封闭类详解

  在C++中,成员对象是指一个类的成员变量,它本身是另一个类的对象。封闭类是包含这些成员对象的类。理解两者的关系和行为,对于构造函数、析构函数、初始化顺序以及内存布局等方面的理解非常重要。


1. 成员对象和封闭类的基本概念

成员对象
  • 是一个类的成员变量,但类型是一个类。
  • 通常用于实现组合(composition)关系。
  • 在封闭类的生命周期中,成员对象的构造函数和析构函数被自动调用。
封闭类
  • 是包含成员对象的类。
  • 封闭类的构造函数负责调用成员对象的构造函数,析构函数负责调用成员对象的析构函数。

2. 成员对象的构造与析构

a. 构造顺序
  • 成员对象在封闭类的构造函数执行之前初始化。
  • 成员对象的初始化顺序与它们在类中声明的顺序一致,与初始化列表中的顺序无关。
#include <iostream>
class Member {
public:Member(int x) { std::cout << "Member Constructor: " << x << std::endl; }~Member() { std::cout << "Member Destructor" << std::endl; }
};class Container {Member m1;Member m2;
public:Container() : m2(20), m1(10) { // 初始化列表顺序与声明顺序不同std::cout << "Container Constructor" << std::endl;}~Container() {std::cout << "Container Destructor" << std::endl;}
}

相关文章:

  • 在ubuntu 24安装 postgresql 17 (源码安装)
  • 【Python数据库全栈指南】从SQL到ORM深度实践
  • 深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第五篇:多主仲裁与错误恢复
  • 【编程语言】【Python】一篇文章搭建python知识体系
  • 数据保护与通讯安全
  • 基于 STC89C52 的养殖场智能温控系统设计与实现
  • 基于S7-1200 PLC与MM440变频器的速冻库制冷控制系统设计与实现
  • 算法打卡第五天
  • CMake指令:option()
  • vue-table-print 一个强大的Vue 3表格打印工具,支持ElementPlus、Ant Design Vue等主流UI组件库。
  • Windows逆向工程提升之IMAGE_IMPORT_DESCRIPTOR
  • 【Django DRF】一篇文章总结Django DRF框架
  • LabVIEW与SQLServer2019换计算机重新安装数据库
  • LET 2025盛大开幕!数智工厂×智慧物流×机器人,一展get创新科技
  • ConceptAttention:Diffusion Transformers learn highly interpretable features
  • 【LaTex】基础语法入门
  • Maven打包SpringBoot项目,因包含SpringBootTest单元测试和Java预览版特性导致打包失败
  • 第35节:PyTorch与TensorFlow框架对比分析
  • 40 岁 Windows 开启 AI 转型:从系统到生态的智能重构
  • Golang基于 Swagger + JWT + RBAC 的认证授权中间件设计
  • 网站推广服务包括哪些/怎么免费自己做推广
  • 微网站建设比较全面的是/新闻软文自助发布平台
  • 江门网站制作/数字营销案例
  • 网站建设ppt百度文库/我赢网客服系统
  • 网站备案幕布尺寸/现在做百度推广有用吗
  • 做地方旅游网站/泉州网站关键词排名