当前位置: 首页 > 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.zskr.cn/news/82287.html

相关文章:

  • 2025年不锈钢螺母厂家推荐榜单:不锈钢螺丝‌/四方螺母‌/六角焊接螺母源头厂家精选 - 品牌推荐官
  • 【ACM出版 | EI检索】第五届大数据经济与数字化管理国际学术会议(BDEDM 2026)
  • 必看!2025年广东制冷量优质驻车空调品牌推荐 - 讯息观点
  • 2025年国内全自动粘钉一体机厂家权威推荐榜单,目前专业的全自动粘钉一体机公司哪家好优质品牌榜单更新 - 品牌推荐师
  • LINUX设备树
  • 2025年小型风力发电机厂家权威推荐榜单:微风发电/垂直轴风机发电机/太阳能发电系统源头厂家精选 - 品牌推荐官
  • 洗衣液品牌方会协助开发线下渠道吗?新手代理商必看真相 - 速递信息
  • 机器学习解析新闻引语:从定义到实体识别
  • 企业选对大旋风喷涂设备厂家指南:四川辉鑫机械是优选 - 朴素的承诺
  • windriver 第11章:提升PCI性能
  • 2025年超级电容公司TOP5权威推荐:看哪家售后服务优? - mypinpai
  • 2025年度实力强的发光字标识标牌定制生产厂家TOP5推荐: - 工业品牌热点
  • 2025叛逆教育机构TOP5权威推荐:深度测评指南,助力迷途 - 工业推荐榜
  • CPLD(复杂可编程逻辑器件,Complex Programmable Logic Device)是什么? - 详解
  • 2025国产超级电容公司TOP5权威推荐:甄选企业助力能源转 - mypinpai
  • 2025年12月地暖保温板,保温板,环保保温板厂家推荐:行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • 2025年北京除甲醛权威推荐榜单:氧道净醛水漆/甲醛克星/甲醛净化精选与市场解析 - 品牌推荐官
  • 2025年中国十大发光字标识标牌定制厂家推荐:看哪家口碑好 - 工业品牌热点
  • 2025年国内恒温恒湿试验箱生产厂家推荐/恒温恒湿试验箱十大国产品牌/行业十大排名 - 品牌推荐大师
  • 2025年12月危房检测,钢结构检测,外墙空鼓检测公司推荐:行业权威盘点与靠谱机构红榜​ - 品牌鉴赏师
  • 口碑好、实力强、高性价比的网站建设服务商推荐 - mypinpai
  • 几种护眼色
  • 2025年度回弹仪厂家实力排行榜TOP10,附联系电话,重型回弹仪/一体式数显回弹仪/红外分光光度计回弹仪供应厂家口碑推荐 - 品牌推荐师
  • 深入解析:STM32外设学习-串口数据包笔记-(程序)
  • 保存文件带上时间蹉
  • centos7创建swap linux创建swap 创建swap
  • 接触角测量仪品牌与型号大盘点:科研与便携式、高温真空/压力专用推荐 - 品牌推荐大师1
  • 2025年窑湖小镇周边亲子农家乐、团建农家乐推荐:五大热门选 - 工业推荐榜
  • 2025中国别墅入户门十大品牌权威榜:深度解析与选购指南 - 匠子网络
  • 医用/低速/生物制药/血站/大容量/国产离心机哪家强?2025 年头部企业及优质品牌全方位对比 - 品牌推荐大师