C++在main中调用类的静态函数

标签 c++ function class object static

我有课

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/

相关文章:

C++,标准库异常

c++ - 在 C++ 中将惰性生成器实现为 forward_iterator

c++ - 如何计算 double/float C++ 中的位数

oracle - PL/SQL 函数返回无值

javascript - 单击功能,窗口高度在加载和调整大小时可变

c# - 帮助处理 InvalidCastException

C++ : convert uint64_t to unsigned char array

python - 如何停止函数

c# - IEquatable是否级联?

Java-反射 : Get fields belonging to current class only