超级简单:如何在C ++中声明(非指针)对象?
我试过了:
Object obj;
但是C ++编译器认为这是对对象的默认构造函数的调用。甚至可以在C ++中转发声明对象吗?
编辑:我认为没有人理解我的问题。为什么您可以声明int x;
和Object* objptr;
,而不是Object obj;
?我需要这个,因为main之外的struct必须识别Object(所以它需要在main之前声明,在struct之前),但是如果对象没有在main中初始化那么我正在使用的库将无法正常运行。
答案 0 :(得分:1)
您无法实例化不完整类的对象(即仅向前声明的类)。但是,您可以定义指针和对它们的引用:
class Object;
Object *myObject;
class Object {
int someMember;
};
默认情况下,C#和Java使用引用,这些引用并不适用于C ++。
答案 1 :(得分:0)
可以有任意数量的
extern Type var; // declaration
并且应该只是一个
Type var; // definition & declaration
在宣言之前, Type
必须在翻译单元中定义