2017-04-26 65 views
1

我有課書籍和孩子類BookClientC++如何獲取父類中的函數的訪問權限?

在課堂書籍他們是計算書的年齡功能:

int age() 
{return 2017 - getage();} 

我想要的功能,打印的書籍是> 5歲的形式一定出版商。

我正在使用基於範圍的 for循環訪問vec。

vector <BookClient> vec; 

void printageover5(string publisher) 
{ 
    for (const auto& cs : vec) 
    if (cs.age() > 5 && getpublisher()==publisher) 
    { 
     .......... 
    } 
} 

int main() 
{ 
printageover("Amazon"); 
} 

getpublisher()是類圖書客戶

的成員,他們是錯誤:

the object has type qualifiers that are not compatible with the member function 
object type is: const Books 

回答

3

的問題是,age不是const成員函數,所以你不能打電話它在const參考上。

更改聲明

int age() const { return 2017 - getage(); } 

,並確保getage()成員函數也宣佈const

int getage() const { ... } 

注:如果你想你的代碼是正確的時間超過一年的硬編碼當年是不是一個好主意。