如何正确施放物体?

时间:2010-09-15 05:50:00

标签: c++

我有一个代码,

class foo : public bar
{
 public:
    foo(){};
    ~foo(){};
};

class wu
{
 public:
    wu(const bar& Bar ) :
       m_bar(Bar)
    {};
    ~wu(){};

 private:
    bar m_bar;

};

int main()
{
    foo tmpFoo;
    wu tmpWu(tmpFoo);
}

现在我的问题是,上面的代码不会编译,错误信息是“错误:变量wu tmpWu有初始化程序但是类型不完整”。

是否意味着,我必须将tmpFoo对象强制转换为bar类?

请建议。

感谢。

2 个答案:

答案 0 :(得分:5)

您必须在m_bar(Bar)类构造函数中使用语法m_bar = Bar而不是wu。另外,从tmpFoo变量声明中删除大括号,否则您将声明一个返回foo对象并且不接收任何参数的函数。


编辑后:我尝试了该代码,它给出的问题是bar类未定义。在您的情况下,编译器给出了“不完整类型”错误;这意味着在包含文件(或同一文件)中的某个地方,类bar以这种方式声明:

class bar;

但从未定义其内容。

答案 1 :(得分:4)

添加

class bar {};

您的代码适合我。我错过了什么吗?