我有这门课:
class BankAccount{
private:
char* ownerName;
char IBAN[14];
double balance;
}
Run Code Online (Sandbox Code Playgroud)
我有这个功能:
char* BankAccount::getIban(){
return this->IBAN;
}
Run Code Online (Sandbox Code Playgroud)
那个有效,但我想知道为什么我不能这样定义getIban(),因为我想确保不能更改IBAN:
char* BankAccount::getIban()const{
return this->IBAN;
}
Run Code Online (Sandbox Code Playgroud)
它说 return value does not match the function type.
在const函数内部,所有成员的行为就像它们是const一样,在你的情况下,成员IBAN相当于const char IBAN[14].你不能得到一个非const char*来引用一个const数组,从而引发错误.你可能想做:
const char* BankAccount::getIban() const {
return IBAN;
}
Run Code Online (Sandbox Code Playgroud)