在结构对象超出范围

时间:2015-01-08 18:49:45

标签: c++ struct destructor stdvector

部首:

class Class{
    //...
};

struct structTest{
    std::vector<Class> stdvectorTest;
};

实现:

structTest structTest_Object;
//...

structTest_Object超出范围时,structTest_Object.stdvectorTest会发生什么?我记得struct类似于classstd::vector的析构函数释放了内存。

2 个答案:

答案 0 :(得分:4)

structclass相同,但与默认访问级别相同。

成员stdvectorTest已妥善处理,其中包含所有Class个对象。

答案 1 :(得分:2)

因为structTest拥有stdvectorTest作为值类型,所以将调用其析构函数。由于向量按值包含您的类,因此也会调用它们的析构函数。