我不理解下面的「編程原理和實踐」第二版的代碼片段。通過Bjarne Stroustroup文章13.3。C++中的方法鏈接?
void Lines::draw_lines() const
{
if (color().visibility())
for (int i=1; i<number_of_points(); i+=2)
fl_line(point(i–1).x,point(i–1).y,point(i).x,point(i).y);
}
我不明白顏色()。visibility()部分。這究竟是什麼?雖然我沒有完全理解這一點,但我聽說過方法鏈接。這是這種方法鏈的一個例子嗎?我在維基百科上看到,在一個鏈式方法中,第一個函數應該返回一個對象,而第二個函數通過第一個函數變成返回對象的成員函數。但是,在這個例子中,Bjarne Stroustroup在color()函數之前沒有實例。這個color()如何成爲一個對象的成員函數,因爲沒有實例可以工作?有人可以啓發這個請嗎?
有一個實例。調用'draw_lines()'方法的方法。 – fanton
'在一個鏈式方法中,第一個函數應該返回一個對象'_reference_到一個對象,而是。 – dxiv
@dxiv:不一定。 'auto obj = createObject()。makeObjectRed()。makeObjectGreat()' - 所有這些都可以按值返回,而第一個可能是_must_。 –