1

我在课堂上遇到了一些定义问题:

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()’”

问题是什么?

先感谢您,

4

1 回答 1

4

您必须声明您的 getter 函数 const 才能通过您拥有的 const Test& 测试访问它们。

...
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; }
...
于 2013-07-15T21:21:59.360 回答