[英]Parameterized Constructor Object creation using name
class Point
{
private:
int x, y;
public:
Point()
{
}
// Parameterized Constructor
Point(int x1)
{
x=x1;
}
Point(int x1, int y1)
{
x = x1;
y = y1;
}
int getX()
{
return x;
}
int getY()
{
return y;
}
};
int main()
{
Point p(10);
p = Point(50,100);
}
Point(50,100) 會返回一個對象嗎??誰能解釋一下 main 函數的執行細節。 用 Point(50,100) 分配 p 它應該給出一個對象。
這里Point(50,100)
創建一個對象,然后調用class Point
的賦值運算符, class Point
由編譯器默認生成,基本上將右手操作數的內存復制到左手操作數中。 復制后,它還調用Point(50,100)
的析構函數。
您可以通過向函數添加析構函數來檢查這一點。
~Point()
{
std::cout<<"destructor"<<x<<std::endl;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.