以下是我被教导如何使用构造函数,它似乎适用于一个变量,但是当我使用一些变量时,它似乎很奇怪。
我不太清楚如何解决这个问题,但我想要一些方向。提前谢谢!
#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;
}
答案 0 :(得分:2)
奇怪的意思是编译错误?!
在构造函数中,查看setNum
,它必须带3个参数。你可能需要
setNum(a,b,c);
并且您不能使用3 getNum
语句在return
中返回3个元素。如果您需要返回2个以上的元素,请使用std::tuple
或std::pair
获取2个元素。
答案 1 :(得分:0)
您可以更改构造函数以使用member initialization list
Numbers (int a, int b, int c)
: numbers {a}, digits {b}, numerals {c} {}
或旧版本
Numbers (int a, int b, int c)
{
numbers = a;
digits = b;
numerals = c;
}
答案 2 :(得分:0)
我建议你简化你的构造函数
class Numbers
{
public:
Numbers(int a, int b, int c)
: numbers(a), digits(b), numerals(c) // Initialization list
{ ; }
//...
};
在你的简单类中,构造函数不需要调用setter函数。