因此,对于我刚开始的C ++编程类,我们正在编写一个程序,为分数创建一个类,然后对创建的对象执行算术运算。赋值给出了Fraction
类的定义,这里是我最难理解的公共成员。创建的对象是f1
,f2
和fresult
。
public:
void inputFrac();
void printFrac();
Fraction fracMult(Fraction b);
Fraction fracDiv(Fraction b);
Fraction fracAdd(Fraction b);
Fraction fracSub(Fraction b);
我通过创建一个您正在创建类型的类来实现这一点,但是当我在主要的fracMult
函数中进行调用时,就像在我们为程序提供的模板中一样 - >
fresult = f1.fracMult(f2);
我在main之外的函数看起来像这样
Fraction :: Fraction fracMult(Fraction b)
{
Fraction x;
x.numerator = fraction.numerator * b.numerator;
x.denom = fraction.denom * b.denom;
if (fraction.positive == true && b.positive == false ||
fraction.positive == false && b.positive == true)
{
x.positive = false;
}
else (fraction.positive == true && b.positive == true ||
fraction.positive == false && b.positive == false)
{
x.positive = true;
}
return (x);
}
我收到错误
main.cpp:79:1:错误:'Fraction :: Fraction'命名构造函数,而不是类型 分数::分数fracMult(分数b)
我真的很困惑,关于类中函数的类型如何可以作为类的名称,以及我应该如何在main之外格式化函数。
答案 0 :(得分:2)
要实现成员函数,您必须将其引用为ClassName::functionName
。这里第一个Fraction
不是对类名称的引用,而是函数的返回值,它恰好是相同的类型。
简而言之,应该写成如下:
Fraction Fraction::fracMult(Fraction b) {
// implementation here
}