c ++类和定义函数?

时间:2015-04-26 21:20:59

标签: c++ c++11 methods

因此,对于我刚开始的C ++编程类,我们正在编写一个程序,为分数创建一个类,然后对创建的对象执行算术运算。赋值给出了Fraction类的定义,这里是我最难理解的公共成员。创建的对象是f1f2fresult

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之外格式化函数。

1 个答案:

答案 0 :(得分:2)

要实现成员函数,您必须将其引用为ClassName::functionName。这里第一个Fraction不是对类名称的引用,而是函数的返回值,它恰好是相同的类型。

简而言之,应该写成如下:

Fraction Fraction::fracMult(Fraction b) {
    // implementation here
}