gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 03:53:54 25 4
gpt4 key购买 nike

因此,对于我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com