【发布时间】:2013-05-29 08:28:14
【问题描述】:
我发现了一个我想尝试的初学者 C++ 挑战。但是,以下代码表示我编译它时包含错误。如果我尝试一次取 1 行,它会在最后的第一类定义中退出......我不知道出了什么问题:)
#include <iostream>
using namespace std;
class Polynomial {
int a, b, c, functionValue;
public:
Polynomial (int, int, int);
static void functionValue(Polynomial);
};
Polynomial::Polynomial (int x, int y, int z) {
a = x;
b = y;
c = z;
}
void Polynomial::functionValue(Polynomial x) {
for (int i = 0; i < 5; i++) {
x.functionValue = x.a * pow(i, 2) + x.b * i + x.c;
cout << "The value of the function for x = "
<< i << " is " << x.functionValue;
}
}
int main () {
Polynomial poly (2, 3, 5);
Polynomial::functionValue(poly);
system("pause");
return 0;
}
我不知道为什么格式这么差。这是pastebin link.
(编辑:我的错,我编辑了之前的编辑并意外删除了这些 - BoBTFish)
编译器错误:
'Polynomial::functionValue' : redefinition; previous definition was 'data member' 'see declaration of 'Polynomial::functionValue'
'Polynomial::functionValue' : not a function' 'illegal reference to non-static member 'Polynomial::functionValue'
提前致谢。
【问题讨论】:
-
那么编译器错误是什么?
-
首先,您能否提供您遇到的错误?更容易看到错误是什么。另请在来源中指出错误所在。
-
@wizH 也许是因为您没有添加错误消息(我没有投反对票)。错误消息揭示了很多问题,并且大部分时间准确地指出了问题所在
-
我昨天才重新开始编程,所以并没有真正进入循环......不过几分钟后添加了它......无论如何,我从你的答案中修复了初学者的错误。被介绍给社区并不是一个很好的方式......无论如何,谢谢!
-
@wizH:+1 因为问题本身就很好。即使错误信息指出了问题所在,如果没有经验,初学者也很难理解它们。