2012-05-03 37 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引用来调用。

相关问题