在 C++ 中,由于您可以将类实例作为结构中的成员,因此编译器有一个隐式析构函数,就像清理它们的类一样。当我使用固定内存 new-operator 将一个对象分配到我自己的内存中并需要清理它时,我可以调用一个类的析构函数,但是如果我以同样的方式分配一个结构呢?我知道一种解决方法是调用结构中每个类实例的析构函数,只是想知道是否有办法。
问问题
3243 次
2 回答
2
适用于类的相同规则也适用于结构。class
和之间的唯一区别struct
是默认访问级别,没有其他区别。
于 2012-06-24T17:32:16.360 回答
1
没有区别;class
并且struct
本质上是相同的:
class Bar { /* .. */ };
struct Foo
{
Bar x;
};
char arena[HUGE];
Foo * p = ::new (arena) Foo; // construct
p->~Foo(); // destroy; calls the destructor for p->x as expected
于 2012-06-24T17:39:30.673 回答