除了析构函数测试外,也有子类 父类相关内容:
#include <iostream> #define log(x) std::cout<<x<<std::endl using namespace std; /* 父类,构造函数等 */ class String{ public: const char* a; // 俩个字符指针 const char* b; int x,y; // 俩个整型变量 String(const char* str):a(str),b(str) //构造函数1,使用初始化列表实现 { log("char构造函数"); } String(int str):x(str),y(str) //构造函数2 { log("int构造函数"); } String(void){} //构造函数3,默认的 ~String(void) { log("String析构函数"); } }; /* 子类对像gg */ class gg:public String{ public: void fun(String obj) // 临时对像,会产生析构函数 { log("gg---fun--"); } }; /* 测试mian */ int main(void) { String ri("1212"); // 对应的构造函数 String* prr; // 定义一个指针 prr = new String; // 申请一个足够大的内存 delete prr; // 删除内存,会调用析构函数 gg op; // 子类对像 op.fun(ri); // 也调用一次析构函数 cin.get(); // 暂停功能 }
执行如下所示:
所以,析构函数是啥?就是对像被消毁时,执行的一个成员函数,主要作用就是delete回收资源,
C++真是太灵活了,感觉有点像乱伦的操作。。。