C ++循环依赖

时间:2013-12-06 03:28:10

标签: c++

我有一个对象类,一个异常类派生自它。 现在我想要一个对象类的方法抛出异常对象,但遇到无休止的“基类未定义”和“不完整类型”问题。这甚至可能吗?

感谢。

代码:

class object
{

public:
    virtual ~object(){ }

    virtual bool equals(){ throw new exception; }
    virtual int getHash(){ throw new exception; }
    virtual void getType(){ throw new exception; }
};

class exception :
    public object
{
private:
public:
    exception();
    virtual ~exception();
    virtual const char* info();
};

3 个答案:

答案 0 :(得分:1)

不要在班级中定义成员函数。在定义了两个类之后定义它。

答案 1 :(得分:1)

在这种特定情况下,只需将类object的实现放在一个单独的cpp文件中,只在标题中留下声明。

答案 2 :(得分:0)

您是否需要从对象类继承异常类?如果不需要单独的cpp文件,可以在头文件中的对象类之前定义异常类。

    class exception {  
        private:
        public:
            exception();
            // rest of your code
    };

    class object {
        public:
            virtual ~object() {}
            virtual bool equals() { throw exception(); }
            // rest of your code
    };