成员函数在类构造函数内调用

时间:2013-07-15 21:14:56

标签: c++ copy-constructor member-functions

我班上有一些定义问题:

class Test{

protected:

    int a;
    int *b;
    Teste() {}

public:

    int getA() {return a;}
    int getB() {if (b) return *b; else return 0;}
    bool isB() {if(b) return true; else return false;}
    Test(int a1, int b1): a(a1) {b = new int(b1);}
    Test(const Test& test) {
        if (test.isB())
        this->b = new int(test.getB());
        this->a = test.getA();
    }

};

我收到以下错误消息:

“无效的参数'候选人是bool isB()'”

“无效的参数'候选人是bool getB()'”

有什么问题?

提前谢谢你,

1 个答案:

答案 0 :(得分:4)

你必须声明你的getter函数const能够通过const Test& amp;测试你有。

...
int getA() const { return a; }
int getB() const { if (b) return *b; else return 0; }
bool isB() const { if(b) return true; else return false; }
...