不能使函数const

-1 c++ arrays const class

我有这门课:

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.

Dav*_*eas 8

const函数内部,所有成员的行为就像它们是const一样,在你的情况下,成员IBAN相当于const char IBAN[14].你不能得到一个非const char*来引用一个const数组,从而引发错误.你可能想做:

const char* BankAccount::getIban() const {
    return IBAN;
}
Run Code Online (Sandbox Code Playgroud)