理解C 构造和析构函数
浏览量:2978
时间:2024-02-02 07:23:21
作者:采采
C 是一种广泛使用的计算机编程语言,作为C语言的继承,它支持多范型的通用程序设计语言。C 可以支持过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计等多种程序设计风格。在系统开发、引擎开发等应用领域中,C 非常受程序员喜爱。
了解C 数学库中的函数
在C 中,有许多数学库函数可供使用。下面将通过指导您一步一步操作来了解这些函数。
首先,双击或右击打开桌面上的Dev-C 软件,并运行它。Dev-C 是一个适合初学者使用的入门级C/C 集成开发环境(IDE)。它集成了MinGW中的GCC编译器、GDB调试器和AStyle格式整理器等自由软件,界面简洁明了,功能强大。
然后,点击文件,选择新建源代码。此时,会创建一个空白文件,文件名未命名。您可以通过界面左上角的文件选项,选择另存为,将其保存在电脑上的任意位置。为了方便日后查找,建议将文件保存在桌面上。
接下来,介绍常量引用参数的使用。如果您希望在函数中无法改变实参的值,可以使用const关键字。例如:
void fun(const CMyclass obj) { // 对obj进行操作的语句将变为非法 }
了解析构函数和对象数组
当数组对象的生命周期结束时,每个对象数组的析构函数将被调用。例如:
class CTest { public: ~CTest() { cout << "destructor called" << endl; } }; int main() { CTest array[2]; cout << "End Main" << endl; return 0; }
上述代码中,当main函数执行完毕时,会先输出"End Main",然后调用数组对象的析构函数,打印"destructor called"。
了解析构函数和delete运算符
使用delete运算符释放动态分配的内存时,析构函数也会被调用。例如:
CTest* pTest; pTest new CTest; // 构造函数调用 pTest new CTest[3]; // 构造函数调用3次 delete pTest; // 析构函数调用 delete[] pTest; // 析构函数调用3次
了解析构函数在作为返回值时的调用
当对象作为函数返回值返回后,析构函数也会被调用。例如:
class CMyclass { public: ~CMyclass() { cout << "destructor" << endl; } }; CMyclass obj; CMyclass fun(CMyclass sobj) { return sobj; // 返回时生成临时对象 } void main() { obj fun(obj); // 调用函数返回值(临时对象)后,该临时对象的析构函数被调用 }
上述代码中,临时对象在生成时调用了构造函数,而在临时对象消亡时调用了析构函数。
总结
学习C 的构造和析构函数需要勤加练习,并做好笔记。及时温习知识,才能更好地掌握并应用这些概念。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。