我试图在复制构造函数中调用一个访问函数,但它不起作用。以下是我的问题示例:
A.
class A {
public:
//Constructor
A(int d);
//Copy Constructor
A(const A &rhs);
//accessor for data
int getData();
//mutator for data
void setData(int d);
private:
int data;
};
A.CPP
#include "A.h"
//Constructor
A::A(int d) {
this->setData(d);
}
//Copy Constructor
A::A(const A &rhs) {
this->setData(rhs.getData());
}
//accessor for data
int A::getData() {
return data;
}
//mutator for data
void A::setData(int d) {
data = d;
}
当我试图编译这个时,我得到以下错误:
error: passing 'const A' as 'this' argument of 'int A::getData()' discards qualifiers
如果我改变
rhs.getData()
到
rhs.data
然后建造师就可以工作了。是否不允许调用复制构造函数中的函数?有人能告诉我我做错了什么吗?