Table of Contents
通过编译但是错误
class Rectangle{
public:
Point& upperLeft() const { return pData->ulhc;}
Point& upperRight() const { return pData->urhc;}
};
可以修改内部变量
Point coord1(0, 0);
Point coord2(100,100);
const Rectangle rec(coord1, coord2); // from (0,0) to (100, 100)
rec.upperLeft().setX(50); // from (50, 0) to (100, 100)
handles
- References
- Pointers
- iterator
更好的方案(但是也有瑕疵)
class Rectangle{
public:
const Point& upperLeft() const { return pData->ulhc;}
const Point& upperRight() const { return pData->urhc;}
};
瑕疵
GUIObject* pgo;
const Point* pUpperLeft =
&(boundingBox(*pgo).upperLeft());
上面的代码会出现问题。还是可以访问到内部的变量。