c++:如何创建带有两个括号的对象(类).for ex Point obj1((2,2),(3,8))

C++: How to make a object (class) with two brackets. for ex Point obj1((2,2),(3,8))

本文关键字:for 对象 ex obj1 Point 两个 何创建 创建 c++      更新时间:2023-10-16

我有这样的代码

class Point
{
private:
    float x,y;
public:
    Point(const float _x,const float _y)
    {
        x=_x;
        y=_y;
    }
    ~Point(){};
};
class triangle
{
private:
    Point *objPOA;
    Point *objPOB;
    Point *objPOC;
public:
    triangle(const float a,const float b,const float c,const float d,const float e,const float f)
    {
        objPOA=new Point(a,b);
        objPOB=new Point(c,d);
        objPOC=new Point(e,f);
    }
    ~triangle()
    {
        delete objPOA;
        delete objPOB;
        delete objPOC;
    }
};

我想让这个

int main()
{
    triangle obj((1,2),(2,5),(8,6));
    return 0;
}

可以做到;我的意思是在obj内部参数包括括号。

这可以不使用括号,但我想知道是否可以使用括号

你可以让你的三角形构造函数取3个Point s

triangle(const Point& p1, const Point& p2, const Point& p3): 
    objPOA(p1), objPOB(p2), objPOC(p3) {}

并在类中定义Point类型的常规对象而不是指针

Point objPOA, objPOB, objPOC;

您可以使用{ }triangle的构造函数中将Point s初始化为

triangle obj({1,2},{2,5},{8,6}); 

,因为Point是聚合。在c++ 11中,由于新的统一的初始化语法,即使Point是非聚合,上述语法也有效。