【发布时间】:2012-12-05 11:21:35
【问题描述】:
对于我的项目,我正在使用 C++ 中的匿名类,我想知道它们在内存中的分配位置。
我很确定会在堆上分配,但我想知道其他人是否有更详细的信息。
【问题讨论】:
-
如何在堆上分配一个未命名的类?
-
类不在任何地方
-
当然是匿名类型的对象和里面声明的变量!
-
@neagoegab:请参阅chill 的回答,了解如何直接在 C++11 中执行此操作。当然,在 C++03 中,您可以在堆上分配一个未命名类的对象,如果它是具有名称的某个对象的子对象。无法为
new指定未命名的类型。 -
@Steve Jessop,对不起,但是来自寒冷示例的那些不是匿名的。 C++ 不支持匿名结构/类。 C11 确实支持匿名。结构,例如
struct T { int tag; union { float x; int n; }; };。另外,你怎么能分配一些你不能参考的东西?......这是一个讽刺的问题......
标签: c++ memory-management anonymous-class