news 2026/5/20 1:04:46

c++类和对象中

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c++类和对象中
构造函数

构造函数是特殊的成员函数,名字虽然叫做构造,但他不是用来开空间的,而是来完成初始化工作的。当实例化对象完成后,就会调用构造函数来对成员变量进行初始化。

构造函数的特点:

(1)函数名与类名相同

(2)无返回值(返回值什么都不写,void也不写)

(3)对象实例化时系统会自动调用构造函数

(4)构造函数可以重载

代码语言:javascript

AI代码解释

class Date { public: //构造函数可以重载 Date()//无参构造函数 { _year = 1; _month = 1; _day = 1; } Date(int year,int month,int day)//带参构造函数,全缺省 { _year = year; _month = month; _day = day; } void print() { cout << _year << "年" << _month << "月" << _day << "日" << endl; } private: int _year; int _month; int _day; }; int main() { Date d1;//调用无参的构造函数 d1.print(); Date d2(2024, 7, 26);//调用带参的构造函数 d2.print(); return 0; }

(5)如果类中没有显示定义构造函数,那么c++编译器会自动生成一个无参的默认构造函数。

如果类中定义了,编译器将不会再生成。

代码语言:javascript

AI代码解释

class Date { public://调用编译器自动生成的构造函数 void print() { cout << _year << "年" << _month << "月" << _day << "日" << endl; } private: int _year; int _month; int _day; }; int main() { Date d1;//调用无参的构造函数 d1.print(); return 0; }

(6)无参构造函数,全缺省构造函数,和我们不写时编译器自动生成构造函数,都叫做默认的构造函数。但这三个函数不能同时存在,不然调用的时候会存在歧义。

说明: c++中,把类型分为内置类型自定义类型内置类型就是语言提供的原生数据类型,如int,double等,自定义类型就是我们使用class/struct等关键字自己定义的类型。

(7)我们不写时,编译器自动生成的构造函数,对内置类型成员变量没有要求,是否初始化取决于编译器。而对于自定义类型成员变量,要求调用这个成员变量的默认构造函数,若是没有默认构造函数,编译器就会报错

3,析构函数

析构函数与构造函数的功能相反,它完成的不是对对象本身的销毁,不如局部对象是存在栈帧的,函数结束栈帧销毁,它就释放了,不需要我们管。c++规定,在对象销毁时,会调用析构函数,完成对象中资源清理释放工作

析构函数的特点:

(1)析构函数名是在类名前加上~

(2)无参数,无返回值

(3)一个类只能有一个析构函数,若是未显示定义,系统会自动生成默认的析构函数。

(4)对象生命周期结束时,系统会自动调用析构函数。

www.dongchedi.com/article/7591968509647880728
www.dongchedi.com/article/7591967199926239806
www.dongchedi.com/article/7591971294128882201
www.dongchedi.com/article/7591967894913876504
www.dongchedi.com/article/7591967152509534745
www.dongchedi.com/article/7591971859542114878
www.dongchedi.com/article/7591968062619353624
www.dongchedi.com/article/7591967425524941337
www.dongchedi.com/article/7591968380505604670
www.dongchedi.com/article/7591971665794744857
www.dongchedi.com/article/7591968456015364670
www.dongchedi.com/article/7591967435696390718
www.dongchedi.com/article/7591956921293554238
www.dongchedi.com/article/7591967089679123006
www.dongchedi.com/article/7591966696349811225
www.dongchedi.com/article/7591967652885938712
www.dongchedi.com/article/7591966696349975065
www.dongchedi.com/article/7591967199926010430
www.dongchedi.com/article/7591966696349581849
www.dongchedi.com/article/7591966696349712921
www.dongchedi.com/article/7591952901548130840
www.dongchedi.com/article/7591977358085947929
www.dongchedi.com/article/7591957025727447577
www.dongchedi.com/article/7591957710099219006
www.dongchedi.com/article/7591957234859754009
www.dongchedi.com/article/7591958038261891609
www.dongchedi.com/article/7591957038725415448
www.dongchedi.com/article/7591966916986896920
www.dongchedi.com/article/7591957025727218201
www.dongchedi.com/article/7591956099243508249
www.dongchedi.com/article/7591956099243639321
www.dongchedi.com/article/7591957122154480190
www.dongchedi.com/article/7591956180667449880
www.dongchedi.com/article/7591956187550630425
www.dongchedi.com/article/7591952365440696894
www.dongchedi.com/article/7591953708586648089
www.dongchedi.com/article/7591954611506987545
www.dongchedi.com/article/7591955614520050201
www.dongchedi.com/article/7591966752641647166
www.dongchedi.com/article/7591954109906403865
www.dongchedi.com/article/7591955053871743513
www.dongchedi.com/article/7591953699526722072
www.dongchedi.com/article/7591954892609290814
www.dongchedi.com/article/7591954689361822232
www.dongchedi.com/article/7591951704036229657
www.dongchedi.com/article/7591979961964380734
www.dongchedi.com/article/7591972172239782424
www.dongchedi.com/article/7591968413292495385
www.dongchedi.com/article/7591980885017723416
www.dongchedi.com/article/7591978510097744446
www.dongchedi.com/article/7591969027937845822
www.dongchedi.com/article/7591979709920346649
www.dongchedi.com/article/7591980885017690648
www.dongchedi.com/article/7591969174093267480
www.dongchedi.com/article/7591968108445843993
www.dongchedi.com/article/7591965826828829246

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/18 19:25:07

ACPI!ParsePackageLen函数分析--非常重要

ACPI!ParsePackageLen函数分析--非常重要ACPI!ParseScope函数的作用就是分析opcode后调用PushTerm函数建立帧然后调用parseterm函数处理帧。while (!IsStackEmpty(pctxt)){CHKDEBUGGERREQ();pfh (PFRAMEHDR)pctxt->LocalHeap.pbHeapEnd;ASSERT(pfh->pfnParse ! NULL);rc…

作者头像 李华
网站建设 2026/5/13 17:52:17

企业级应用中的模块加载错误实战解决方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个模块加载错误诊断沙盒环境&#xff0c;模拟企业级应用中可能遇到的各种模块加载问题场景&#xff0c;包括&#xff1a;1)不同服务器配置下的模块加载行为&#xff1b;2)各…

作者头像 李华
网站建设 2026/5/3 8:35:43

传统VS现代:Python下载工具开发效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 分别用传统方式和AI辅助方式实现同一个FTP文件下载工具。传统方式要求完整手写代码&#xff1b;AI方式只需描述需求&#xff1a;需要支持FTP协议、多文件队列下载、传输速率显示和…

作者头像 李华
网站建设 2026/5/15 15:00:02

VS2022实战应用案例分享

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个VS2022实战项目&#xff0c;包含完整的功能实现和部署方案。点击项目生成按钮&#xff0c;等待项目生成完整后预览效果 VS2022实战应用案例分享&#xff1a;从开发到部署的…

作者头像 李华
网站建设 2026/5/17 9:48:47

编程小白也能做:用快马创建你的第一个记事本应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个最简单的记事本Web应用&#xff0c;适合编程新手学习&#xff0c;功能包括&#xff1a;1. 纯文本输入区域 2. 保存/打开本地文件功能 3. 基本的字体样式设置(加粗/斜体) 4…

作者头像 李华
网站建设 2026/5/13 18:57:00

VibeVoice-WEB-UI是否支持语音生成任务提醒?待办事项

VibeVoice-WEB-UI&#xff1a;当TTS不再只是“朗读”&#xff0c;而是“演绎” 在播客制作人熬夜剪辑音频、有声书团队反复校对角色语气的今天&#xff0c;我们是否还能想象一种可能——只需输入一段结构化文本&#xff0c;系统就能自动理解谁该说什么、何时停顿、以何种情绪表…

作者头像 李华