我有课
class Triedenie_cisla{
public:
Triedenie_cisla(int *poleHodnot, int ddlzka);
int *pole, dlzka;
double bubble_cas, selection_cas, insertion_cas, quick_cas;
vector<int> mnozina_int;
string vypis_pola();
void BubbleSort_int();
void SelectionSort_int();
void InsertSort_int();
void QuickSort_int();
void static zorad_Sorty();
};
和函数
void Triedenie_cisla::zorad_Sorty(){
if ( (quick_cas<bubble_cas) && (quick_cas<selection_cas) && (quick_cas<insertion_cas) ) {
cout << "The best one is Quick Sort with time "<< quick_cas << " ms"<< endl;
}
}
在我的 main.cpp 中我需要调用这个函数。 Triedenie_cisla::zorad_Sorty(); 我使用了静态思维,这可能有助于在不创建对象的情况下调用我的函数,但我总是会遇到这些错误
error C2597: illegal reference to non-static member 'Triedenie_cisla::bubble_cas'
error C3867: 'Triedenie_cisla::bubble_cas': function call missing argument list; use '&Triedenie_cisla::bubble_cas' to create a pointer to member
如何解决问题?非常感谢,我对 C++ 很陌生
最佳答案
由于zorad_Sorty
是静态的,它只能访问静态成员。但是您的实现访问非静态成员。
如果您需要访问此类的非静态成员,则必须实例化它的一个实例。
或者,如果您必须使用静态方法,则必须仅使用静态成员来实现该方法。
关于C++在main中调用类的静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21676270/