曾宝月

关注

显式调用析构函数与栈中 new 对象

曾宝月

关注

阅读 6

2023-09-14



#include <iostream>
#include <new>

class Test
{
public:
    Test(int ii) : i(ii) {}
    ~Test() { std::cout << i << std::endl; }
    
public:
    int i;
};

int main(int argc, char* argv[])
{
    // #test will be destructed 2 times.
    Test test(10);
    Test* p = &test;
    p->~Test();
    new (p) Test(100);
    
    return 0;
}



1. 显式调用析构函数

2. 通过 placement new 在原地址重新创建类实例




相关推荐

言午栩

深入探索C++对象模型(九) 析构函数 (以及显式定义的析构函数问题、析构函数Rules of Three)

言午栩 61 0 0

一天清晨

构造函数与析构函数

一天清晨 94 0 0

蛇发女妖

显式调用构造函数及临时对象

蛇发女妖 36 0 0

德州spark

构造函数与析构函数及三大调用

德州spark 48 0 0

眼君

C++构造函数和析构函数中调用虚拟函数

眼君 49 0 0

拾光的Shelly

c++构造函数和析构函数中调用虚函数

拾光的Shelly 85 0 0

pipu

析构函数

pipu 69 0 0

仲秋花似锦

C++基础--类与对象(中)--构造函数,析构函数,拷贝构造

仲秋花似锦 76 0 0

倚然君

类和对象(中)(构造函数、析构函数和拷贝构造函数)

倚然君 14 0 0

静鸡鸡的JC

C++构造函数与析构函数

静鸡鸡的JC 56 0 0

精彩评论(0)

0 0 举报