那麼,WinAPI有一個POINT
結構,但我正在嘗試做一個替代類,因此你可以設置值爲x
和y
從構造函數。C++ OOP - 你能'超載演員'< - 很難解釋1句
/**
* X-Y coordinates
*/
class Point {
public:
int X, Y;
Point(void) : X(0), Y(0) {}
Point(int x, int y) : X(x), Y(y) {}
Point(const POINT& pt) : X(pt.x), Y(pt.y) {}
Point& operator= (const POINT& other) {
X = other.x;
Y = other.y;
}
};
// I have an assignment operator and copy constructor.
Point myPtA(3,7);
Point myPtB(8,5);
POINT pt;
pt.x = 9;
pt.y = 2;
// I can assign a 'POINT' to a 'Point'
myPtA = pt;
// But I also want to be able to assign a 'Point' to a 'POINT'
pt = myPtB;
是否有可能超載operator=
的方式,這樣我可以指定一個Point
到POINT
?或者也許有其他方法來實現這一目標?
在此先感謝。
謝謝您!我其實並不知道有一個轉換操作符。我想這一切都歸結於你不知道的東西,如果這是有道理的); –
你也可以從POINT結構或類派生。這給你隱式轉換POINT&和隱式轉換Point *爲POINT *的能力。 – Yakk
@Yakk提出的是ATL實際上爲'VARIANT'和'BSTR'提供了一個(壞)C++包裝。對於'CComSafeArray',他們使用了一個轉換運算符。 –