【发布时间】:2011-09-25 14:51:07
【问题描述】:
我正在为 x 和 y 笛卡尔坐标系创建一个 pair1 类。 x 和 y 是双精度数。我需要有 3 个构造函数。
- 无参数,默认 x 和 y 为零。
- 一个论点将 x 赋值并将 y 默认为零。
- 一个参数默认 x 为零并分配 y。我不确定我是否正确设置了课程。我收到以下错误:
pair1::pair1(double)和pair1::pair1(double)不能重载。
我的班级:
class pair1
{
private:
double x;
double y;
public:
pair1(){ x = 0.0, y = 0.0; }
pair1( double a ){ x = a; y =0.0; }
pair1(double b){ x = 0.0; y = b; }
};
【问题讨论】:
-
您有两个签名相同的 ctor。如果我调用 pair1(3.1),应该运行哪一个?
-
用一个简单的
std::pair<double, double>怎么样?您可以像x(1.2, 0)或x(0, 4.3)或x()一样初始化它。这将比您的代码更有效(例如,您为什么不使用初始化程序?)。
标签: c++ class constructor arguments