小编Дим*_*цев的帖子

C++ 析构函数多次销毁对象

我是 C++ 新手,所以有一个问题。

有C++代码:

class Test
{        
    public:
        std::string name;
        Test(){};
        Test(std::string name) {
        
            std::cout << "Create " << name << '\n';
            Test::name = name;
        };
        ~Test() {std::cout << "Destroy " << name << '\n';} 
};

std::vector<Test> test {Test("one"), Test("two"), Test("three")};

void main()
{
    for (auto i : test)
        std::cout << i.name << '\n';
    
    std::cout << "Clear\n";
    test.clear();
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

Create one
Create two
Create three
Destroy three
Destroy two
Destroy one
one
Destroy one
two
Destroy two
three
Destroy …
Run Code Online (Sandbox Code Playgroud)

c++ destructor

5
推荐指数
1
解决办法
102
查看次数

标签 统计

c++ ×1

destructor ×1