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

C++学习笔记 04 构造函数 和 析构函数

一、不写构造函数带来的问题

  1. 属性值未被初始化,是内存上的脏数据
  2. 创建对象语句,于编译期报错:Using uninitialized memory
  3. 不同于java,属性有默认值,C++属性的初始值需要程序员手动指定
#include<iostream>class Entity {
public:int x, y;void print() {//-858993460 , -858993460std::cout << x << " , " << y << std::endl;}
};int main() {//1. 内部方法调用时,会显示未初始化的内存数据Entity e;e.print();//2. 外部直接访问未初始化属性的对象时,编译报错//如果没有构造函数:编译报错:Using uninitialized memory 'e'.// 如果有空构造函数:-858993460 , -858993460std::cout << e.x << " , " << e.y << std::endl;
}

二、隐藏构造函数的2种方式

  1. private
  2. delete
#include<iostream>class Log {
private://1. 隐藏默认构造函数方式一Log() {}
public://2. 隐藏默认构造函数方式二//Log() = delete;static void write(const char* message) {std::cout << message << std::endl;}
};int main() {Log::write("Hello");Log log;log.write("World");
}

三、析构函数

在当前栈区释放时,该栈中的对象会背释放,此时调用析构函数

#include<iostream>class Entity {
public:Entity() {x = 0;y = 0;std::cout << "Create Entity!" << std::endl;};~Entity() {std::cout << "Destroy Entity!" << std::endl;};int x, y;void print() {//-858993460 , -858993460std::cout << x << " , " << y << std::endl;}
};//需要挪到main函数之外,能看到析构函数的调用
void testDestructor() {Entity e;e.print();
}int main() {//对象在栈上创建,当作用域(当前方法)结束时会被自动销毁//最后一行代码:std::cin.get(); 执行完成后, 当前栈被销毁,e,被销毁,执行e的析构函数。但黑窗口已经不见了//所以将此调用移到main函数之外//Entity e;//如果没有构造函数:编译报错:Using uninitialized memory 'e'.// 如果有空构造函数:-858993460 , -858993460//std::cout << e.x << " , " << e.y << std::endl;//e.print();testDestructor();std::cin.get();}
http://www.jsqmd.com/news/71756/

相关文章:

  • 2025年佛山债务纠纷律师事务所推荐:实力强的债务纠纷律师 - mypinpai
  • 原始字面量
  • 揭示2025重庆全屋定制供应商排行,主要有哪些优质厂家推荐? - 讯息观点
  • 【分布式利器:RocketMQ】2、RocketMQ消息重复?3种幂等优秀的方案,彻底解决重复消费(附代码实操)
  • 2025年12月飓丰4.2米保温车,飓丰纯电动保温车,飓丰小型保温车厂家推荐:冷链行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • 六恒空气管理系统综合性价比多方面对比推荐品牌 - 速递信息
  • 六恒空气管理系统综合性价比多方面对比推荐品牌 - 速递信息
  • 水动力模型中的冷启动和热启动的区别
  • 2025年不锈钢螺母厂家推荐榜单:不锈钢螺丝‌/四方螺母‌/六角焊接螺母源头厂家精选 - 品牌推荐官
  • 【ACM出版 | EI检索】第五届大数据经济与数字化管理国际学术会议(BDEDM 2026)
  • 必看!2025年广东制冷量优质驻车空调品牌推荐 - 讯息观点
  • 强行修改Git提交记录的提交人和邮箱
  • 2025年国内全自动粘钉一体机厂家权威推荐榜单,目前专业的全自动粘钉一体机公司哪家好优质品牌榜单更新 - 品牌推荐师
  • Vibe Coding 你应该更激进:用最 SOTA 的模型,赚最高的时薪|编码人声
  • 2025年全屋定制家哪家好?十大品牌硬核实力解码与品质之选指南,欧蒂尼家居引领行业 - 速递信息
  • LINUX设备树
  • 2025年小型风力发电机厂家权威推荐榜单:微风发电/垂直轴风机发电机/太阳能发电系统源头厂家精选 - 品牌推荐官
  • 洗衣液品牌方会协助开发线下渠道吗?新手代理商必看真相 - 速递信息
  • 2025年浙江网站建设机构推荐榜单:外贸网站建设‌/商城网站建设‌/高端网站建设源头机构精选 - 品牌推荐官
  • 机器学习解析新闻引语:从定义到实体识别
  • 2025年杭州电子名片公司推荐榜单:免费电子名片‌/企业电子名片‌/微信电子名片源头公司精选 - 品牌推荐官
  • 手把手教你使用Ventoy将一个U盘装多个系统镜像+PE镜像(微PE)
  • 成都新中式仿古门窗厂家推荐:2025 年权威榜发布 - 朴素的承诺
  • 2025 年四川户外防腐木地板公司排名榜:产品权威评测 - 朴素的承诺
  • 2025 年成都天然气掺氢设备生产厂家最新实力榜 - 朴素的承诺
  • 企业选对大旋风喷涂设备厂家指南:四川辉鑫机械是优选 - 朴素的承诺
  • 四川水泥瓦生产实力厂家 —— 彭州市大地彩瓦厂案例分享 - 朴素的承诺
  • 国内国产振实密度仪技术升级,2025哪个品牌公司产品售后好? - 品牌推荐大师
  • 国内国产堆积密度仪技术升级,2025哪个品牌公司产品售后好? - 品牌推荐大师
  • windriver 第11章:提升PCI性能