C++ 好奇为什么我的构造函数不';我好像不工作

C++ 好奇为什么我的构造函数不';我好像不工作,c++,constructor,C++,Constructor,下面是如何教我使用构造函数的,它似乎只对一个变量有效,但当我使用一些变量时,它的行为似乎很奇怪 我不太确定该怎么解决这个问题,但我想知道一些方向。提前谢谢 #include <iostream> #include <string> using namespace std; class Numbers { public: Numbers (int a, int b, int c) { setNum (a); setNum

下面是如何教我使用构造函数的,它似乎只对一个变量有效,但当我使用一些变量时,它的行为似乎很奇怪

我不太确定该怎么解决这个问题,但我想知道一些方向。提前谢谢

#include <iostream>
#include <string>

using namespace std;

class Numbers
{
public:
    Numbers (int a, int b, int c)
    {
        setNum (a);
        setNum (b);
        setNum (c);
    }

    void setNum (int x, int y, int z)
    {
        numbers = x;
        digits = y;
        numerals = z;
    }

    int getNum ()
    {
        return numbers;
        return digits;
        return numerals;
    }

    int add (int x, int y, int z)
    {
        int answer = x + y + z;
        return answer;
    }

private:
    int numbers;
    int digits;
    int numerals;
};

int main ()
{
    Numbers numbersobject (12,13,14);
    cout << numbersobject.getNum () << endl;

    return 0;
}
#包括
#包括
使用名称空间std;
班级人数
{
公众:
数字(整数a、整数b、整数c)
{
setNum(a);
setNum(b);
setNum(c);
}
void setNum(整数x,整数y,整数z)
{
数字=x;
数字=y;
数字=z;
}
int getNum()
{
返回号码;
返回数字;
返回数字;
}
整数加(整数x,整数y,整数z)
{
int-answer=x+y+z;
返回答案;
}
私人:
整数;
整数位数;
整数;
};
int main()
{
数字对象(12,13,14);

难道奇怪的意思是编译错误

在构造函数中,查看您的
setNum
,它必须包含3个参数

setNum(a,b,c);

并且不能在
getNum
中使用3个
return
语句返回3个元素。如果需要返回2个以上的元素,请对2个元素使用
std::tuple
std::pair

可以将构造函数更改为使用

还是旧版本

Numbers (int a, int b, int c)
{
    numbers = a;
    digits = b;
    numerals = c;
}

我建议你简化你的构造函数

class Numbers
{
  public:  
    Numbers(int a, int b, int c)
    : numbers(a), digits(b), numerals(c) // Initialization list
    { ; }
    //...
};

在您的简单类中,构造函数不需要调用setter函数。

setNum
接受多少个参数?调用时传递多少个参数?您认为在
getNum
中的第一个
return
语句中会发生什么?一次只能从函数返回一件事。另请参见init构造函数的序列化列表。
class Numbers
{
  public:  
    Numbers(int a, int b, int c)
    : numbers(a), digits(b), numerals(c) // Initialization list
    { ; }
    //...
};