2012-05-03 39 views

回答

7

它可以調用其他函數,而不是在這種情況下。

您正在從get()返回const Book &。然後調用print(),這是一個非const函數。爲了解決這個問題,使print()常量:

void print() const; 

void Book::print() const 
{ 
    cout << "print()" << endl; 
} 

這個常量可以確保你的對象的狀態不會被改變,這與您從get()返回const對象的規定。請注意,它可以更改mutable成員,因爲這是他們的全部目的。

編輯: 順便說一下,您要查找的術語是method chaining

2

Book :: print()不是一個const成員函數,因此不能用Book :: get()返回的const Book引用來調用。

相關問題