【问题标题】:Not able to create a class object inside another class?无法在另一个类中创建类对象?
【发布时间】:2012-06-01 19:10:11
【问题描述】:

我有一个场景,我无法在另一个类中创建一个类对象。场景如下:

class base
{
public:
base();
~base();
int getbase(void){return baseVar;}
void setbase(int arg){baseVar = arg;}
private:
int baseVar;
};

class derived1 : public base
{
public:
derived1();
~derived1();
int getbase(void);
void setbase(int arg);
private:
int derVar1;
};

class derived2 : public base
{
public:
derived2();
~derived2();
int getbase(void);
void setbase(int arg);
private:
int derVar2;
};

class container
{
public:
container();
~container();

derived1 derObj1;
derived2 derObj2;

private:
int containerVar;
};

class usage
{
public:
usage();
~usage();
private:
container containerObj; // compilation error
int usegeVar;
};

编译错误是: 错误 C2146:语法错误:缺少“;”在标识符“containerObj”之前 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 我正在使用 vc++

我请求某人如何纠正这个编译错误?提前致谢。

【问题讨论】:

  • 你是否在定义类usage的文件中包含了定义类container的头文件?该错误意味着编译器看不到 container 类型的定义。
  • 正如我们在空军中常说的:CND(不能复制)。使用 VC++10 和 gcc 4.7 编译时没有错误。

标签: visual-c++


【解决方案1】:

在一个空的 VisualC++ 2k8 项目上复制粘贴你的代码就可以了!

【讨论】:

    猜你喜欢
    • 2014-07-23
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多