c++ 类并在其中定义函数?

标签 c++ c++11 methods

因此,对于我的 C++ 编程入门类(class),我们正在编写一个程序,该程序为分数创建一个类,然后对创建的对象执行算术运算。作业给出了类 Fraction 的定义,这里是我最难理解的公共(public)成员。创建的对象是 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: error: 'Fraction::Fraction' names the constructor, not the type Fraction :: Fraction fracMult(Fraction b)

我真的很困惑类中函数的类型如何成为类的名称,以及我应该如何在 main 之外格式化函数。

最佳答案

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

简而言之,应该这样写:

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

关于c++ 类并在其中定义函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29883700/

相关文章:

methods - 如何更改intellij方法的顺序?

java - 如何从方法返回二维数组索引?

c++ - 重载运算符 new[] 的行为取决于析构函数

c++ cgi app调用其他程序失败

c++ - 高效频率计数器

C++ map 位置

javascript - 如何解决 "Cannot call method "addL"of undefined"

c++ - 如何从字符串中删除所有子字符串

c++ - 如何检查计算机是否存在?

c++ - 在C++中通过套接字发送二进制数据