目录
- Base* b = new Derive();
- delete b;
二、析构函数
C++ 的类中可以定义一个特殊的清理函数
这个特殊的清理函数叫做析构函数
析构函数的功能与构造函数相反
定义:~ClassName()
析构函数没有参数也没有返回值类型声明
析构函数在对象销毁时自动被调用
下面开始简单使用析构函数:
- #include
-
- class Test
- {
- public:
- Test()
- {
- printf("Test()\n");
- }
- ~Test()
- {
- printf("~Test()\n");
- }
- };
-
- int main()
- {
- Test t;
-
- return 0;
- }
输出结果如下:
t 虽然是对象,但是本质上也是局部变量,在 return 0 之前会销毁,t 被销毁时析构函数会被自动调用。
下面再来看一个例子:
- #include
-
- class Test
- {
- int mi;
- public:
- Test(int i)
- {
- mi = i;
- printf("Test(): %d\n", mi);
- }
- ~Test()
- {
- printf("~Test(): %d\n", mi);
- }
- };
-
- int main()
- {
- Test t(1);
-
- Test* pt = new Test(2);
-
- delete pt;
-
- return 0;
- }
结果:

原文链接:https://blog.csdn.net/weixin_43129713/article/details/123668697
- int class_num = sizeof(class_names) / sizeof(class_names[0]);
-
- YOLO yolo(class_num, input_w, input_h);
- YOLO::~YOLO()
- {
- std::cout << "yolo destroy" << std::endl;
- this->context->destroy();
- this->engine->destroy();
- this->runtime->destroy();
-
- }