我正在为 x 和 y 笛卡尔坐标系创建一个 pair1 类。 x 和 y 是 double 。我需要 3 个构造函数。
- 没有参数,默认 x 和 y 为零。
- 一个论点将 x 赋值并将 y 默认为零。
- 一个参数将 x 默认为零并分配 y。我不确定我是否正确设置了类(class)。我收到以下错误:
pair1::pair1(double)
和pair1::pair1(double)
无法重载。
我的类(class):
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; }
};
最佳答案
1) no arguments, defaults x and y to zero.
这很简单
2) one arguement assigns x and defaults y to zero.
3) one arugeument defaults x to zero and assigns y.
这是一个问题。当您只有一个参数时,您怎么知道要调用两个参数中的哪一个?这就是为什么会出现编译错误。
相反 - 使用默认构造函数(没有参数的那个)、完整的构造函数(有两个参数的那个),如果需要,以及 SetX()
和 SetY()
分别设置X和Y,通过函数名区分。
class pair1
{
private:
double x;
double y;
public:
pair1( double a=0.0, double b=0.0 ){ x = a; y =b; };
// default value 0.0 allows to only
// set x, and leave y to be the default,
// or leave them both default.
void SetX(double a) { x=a;};
void SetY(double b) { y=b;};
};
关于c++ - 类构造函数参数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528992/