在C++中调用静态函数

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)

谢谢你的帮助!!

Alo*_*ave 5

您需要将其称为:

Vektor::addieren(test,test2);
Run Code Online (Sandbox Code Playgroud)

可以使用类的完全限定名称调用静态成员函数.它们也可以在类实例上调用,但由于您没有任何实例,因此它不适用于此处.