簡體   English   中英

創建對象類型的變量

[英]Creating a variable of an object type

我一直被這個問題困住,似乎無法解決它,我正在用 C++ 創建一個程序,該程序計算各種函數,例如面積、周長、不同形狀的點。

其中一部分包括創建一個 Point 類型的 leftTop 變量(Point 是一個類,它只有 2 個整數(x 和 y)和一個稱為 Point 的方法來打印出不同形狀的 x 和 y)。 我使用模板創建了一個簡單返回 x 和 y 的點類型函數,我知道這是不正確的,但我還是想嘗試一下。

template <typename Point>
Point leftTop(Point x, Point y) {
    return x, y;
}

但它需要是一個點類型的數據成員(存儲在一個名為 shape 的類中),用於存儲形狀左上點的 x 和 y 坐標,我被困在如何實現這一點上,因為我需要使用leftTop變量來計算形狀的其他點如leftBottom、rightTop等。

您使用模板化函數使事情變得過於復雜! 確切的解決方案取決於您如何定義Point類,但您可能只需要一個相關的構造函數:

class Point
{
public
    Point(int px, int py) : x{ px }, y{ py } {}
public: // Make these "private" if you want to prevent direct access
    int x;
    int y;
};

然后你可以很容易地創建你的leftTop對象:

int left = 12; // Or whatever
int top = 17;
Point leftTop(left, top);

您可以添加其他成員函數來完成幾乎所有您想做的事情。

由於您使用的是 Visual Studio,因此可能可以訪問 MFC 類,因此您可以查看 MFC 如何實現其CPointCRect類以獲得指導。 如果您看不到 MFC 的內容,那么Windows.h文件提供了 C 風格的結構,稱為POINTRECT ,它們也可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM