N8_*_*der 1 c++ static-methods class
我正在编写一个代码来处理C++中的向量.我有3个文件:main.cpp,Vektor.cpp和Vektor.h现在我想在main中调用一个静态funktion,它在Vektor.cpp中实现并在Vektor.h中声明."test"和"test2"是Vektor类的两个实例.Eclipse抛出一个错误,但我不知道为什么; 它说
此行的多个标记 - 无法解析函数'addieren' - 此范围内未声明'addieren' - 'endl'的无效重载 - 行断点:main.cpp [line:28]
哪里出错了?包括"Vektor.h".以下是必要的插条:
main.cpp中:
// ...
cout << "Summe: " << addieren(test,test2) << endl;
Run Code Online (Sandbox Code Playgroud)
Vektor.cpp:
Vektor Vektor::addieren(Vektor vektor1, Vektor vektor2)
{
Vektor vektorSumme;
vektorSumme.set_x(vektor1.get_x() + vektor2.get_x());
vektorSumme.set_y(vektor1.get_y() + vektor2.get_y());
vektorSumme.set_z(vektor1.get_z() + vektor2.get_z());
return vektorSumme;
}
Run Code Online (Sandbox Code Playgroud)
Vektor.h:
class Vektor
{
//...
public:
//...
static Vektor addieren(Vektor vektor1, Vektor vektor2);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!!
您需要将其称为:
Vektor::addieren(test,test2);
Run Code Online (Sandbox Code Playgroud)
可以使用类的完全限定名称调用静态成员函数.它们也可以在类实例上调用,但由于您没有任何实例,因此它不适用于此处.
| 归档时间: |
|
| 查看次数: |
1255 次 |
| 最近记录: |