C++聚合、传递参数 我是C++新手,所以非常感谢你的帮助。
问题是,如果我的主函数中有这样的函数,那么我的第二个类B的构造函数应该是什么样的:C++聚合、传递参数 我是C++新手,所以非常感谢你的帮助。,c++,oop,C++,Oop,问题是,如果我的主函数中有这样的函数,那么我的第二个类B的构造函数应该是什么样的: B B1(A(1,2),A(3,4),A(5,6)); 所以我有两门课 class A { public: A(float x=0, float y=0): _x(x),_y(y) {} A(const A & o) { _x=o._x; _y=o._y; } private: float _x,_y; }; 第二类
B B1(A(1,2),A(3,4),A(5,6));
所以我有两门课
class A
{
public:
A(float x=0, float y=0): _x(x),_y(y)
{}
A(const A & o)
{
_x=o._x;
_y=o._y;
}
private:
float _x,_y;
};
第二类:
class B
{
public:
B(????)
{
}
~B()
{
}
private:
A *_pPoint;
};
编辑:
我希望它能将这些点保存到某个地方,以便以后使用。由于构造函数是通过类型为A的参数传递的,所以可以-
B(A p, A q, A r);
构造函数的声明可以如下所示
B( const A &, const A &, const A & );
至于它的定义,很难说清楚。例如,pPoint可以指向为数组或单个元素分配的内存区域。您认为如何?。。发表您的想法。主要的下划线约定可能会导致C库实现名称出现问题。最好使用尾随下划线。原始指针成员a*_pPoint可能指向动态分配的数组。如图所示,代码没有适当注意复制,或者不允许复制。可能会出现双重删除和其他恶劣的未定义行为;改用std::vector。Bconst a&p1、const a&p2、const a&p3应能允许上述调用。我可能忽略了这一点,但是…-1您所询问的构造函数可能会将实际参数复制/移动到数组中。但你没说。也许相反,人们希望它对它们进行比较,或者做些别的事情。正确的签名取决于它的预期用途。向下投票是因为信息不足。也可以是B常量和a1、常量和a2、常量和a3。加上许多其他变种。但是这个答案和这个答案之间的选择取决于它的意图。