在C+中调用静态函数+; 我正在编写一个代码,用C++中的向量来工作。 我有3个文件:main.cpp、Vektor.cpp和Vektor.h 现在我想在main中调用一个静态函数,它在Vektor.cpp中实现,在Vektor.h中声明。“test”和“test2”是Vektor类的两个实例。 Eclipse抛出一个错误,但我不知道为什么;上面说

在C+中调用静态函数+; 我正在编写一个代码,用C++中的向量来工作。 我有3个文件:main.cpp、Vektor.cpp和Vektor.h 现在我想在main中调用一个静态函数,它在Vektor.cpp中实现,在Vektor.h中声明。“test”和“test2”是Vektor类的两个实例。 Eclipse抛出一个错误,但我不知道为什么;上面说,c++,class,static-methods,C++,Class,Static Methods,这条线上有多个标记 -无法创建函数“addieren” 断然的 -“Addiern”未在此列表中声明 范围 -“endl”的重载无效 -行断点:main.cpp[行: 28] 错在哪里?包括“Vektor.h”。以下是必要的岩屑: main.cpp: // ... cout << "Summe: " << addieren(test,test2) << endl; Vektor.h: class Vektor { //... public: //...

这条线上有多个标记 -无法创建函数“addieren” 断然的 -“Addiern”未在此列表中声明 范围 -“endl”的重载无效 -行断点:main.cpp[行: 28]

错在哪里?包括“Vektor.h”。以下是必要的岩屑:

main.cpp:

// ...
cout << "Summe: " << addieren(test,test2) << endl;
Vektor.h:

class Vektor

{
//...
public:
  //...
static Vektor addieren(Vektor vektor1, Vektor vektor2);

谢谢你的帮助

您需要将其称为:

Vektor::addieren(test,test2);

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

您需要将其称为:

Vektor::addieren(test,test2);

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

调用静态函数的语法是:
Vektor::addieren(…)
调用静态函数的语法是:
Vektor::addieren(…)
您应该调用它

Vektor::addieren(test, test2)
但我建议你们,改进addieren函数,通过引用或指针传递这两个向量

addiren(Vektor&vektor1、Vektor&vektor2)

addiren(Vektor*vektor1,Vektor*vektor2)

但是你必须用你的名字来称呼它

Vektor::addierent(&test, &test2)
你应该叫它

Vektor::addieren(test, test2)
但我建议你们,改进addieren函数,通过引用或指针传递这两个向量

addiren(Vektor&vektor1、Vektor&vektor2)

addiren(Vektor*vektor1,Vektor*vektor2)

但是你必须用你的名字来称呼它

Vektor::addierent(&test, &test2)

您需要使用类的完全限定名调用它,如下所示:

Vektor v_res=Vektor::addieren(test, test2);
或在对象(类的实例)上:


您需要使用类的完全限定名调用它,如下所示:

Vektor v_res=Vektor::addieren(test, test2);
或在对象(类的实例)上:


如果他希望它们是可选的,他应该只通过指针传递。他还应该使用const引用,因为他似乎只是在读取向量中的值。是的,但如果他显然是非常早期的初学者,那么此时没有必要使用const并解决它为什么有用的问题。对于指针传递,你是对的。如果他希望它们是可选的,他应该只通过指针传递。他还应该使用const引用,因为他似乎只是在读取向量中的值。是的,但如果他显然是非常早期的初学者,那么此时没有必要使用const并解决它为什么有用的问题。通过指针传递,你是对的。这是一个很好的例子,说明为什么你应该养成所有源代码和注释都是英语的习惯;总有一天,不懂你母语的人会看你的代码,这让双方都感到尴尬在schönes Beispeel warum中,英语中的Angewohnheit machen sollte、allen Code和Kommentare是一种语言;这是一个很好的例子,说明为什么你应该养成把所有源代码和注释都变成英语的习惯;总有一天,不懂你母语的人会看你的代码,这让双方都感到尴尬在schönes Beispeel warum中,英语中的Angewohnheit machen sollte、allen Code和Kommentare是一种语言;这段代码是lesen müssen,deiner Muttersprache nicht mächtig ist,mit Problemen für beide Seiten。它也可以在一个实例上调用,尽管在这种情况下这样做没有什么意义。确切地说,答案的第二部分是无效的。它也可以在一个实例上调用,虽然在这种情况下这样做没有什么意义。确切地说,所以答案的第二部分是无效的