C++ 在 main 中调用类的静态函数
C++ call static function of class in main
我有一个类
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;
}
}
在我的主.cpp我需要调用这个函数。Triedenie_cisla::zorad_Sorty();我使用了静态 thkinking,这可能有助于在不创建对象的情况下调用我的函数,但我总是收到这些错误
错误 C2597:对非静态成员的非法引用 "Triedenie_cisla::bubble_cas"
错误 C3867:"Triedenie_cisla::bubble_cas":缺少函数调用 参数列表;使用"&Triedenie_cisla::bubble_cas"创建指针 致会员
如何解决问题?非常感谢,我是 c++ 的新手
由于zorad_Sorty
是静态的,因此它只能访问静态成员。但是您的实现访问非静态成员。
如果需要访问此类的非静态成员,则必须实例化它的实例。
或者,如果必须使用静态方法,则必须仅使用静态成员实现该方法。
正如错误所说,您不能在静态函数中使用非静态成员。您可以逐渐使需要使用静态的所有内容都变为静态,但是在main中创建对象并使用它可能更有意义。例如
(编辑)如果您有默认构造函数...
//...
Triedenie_cisla object;
object.zorad_Sorty();
否则,请提供所需的参数:
Triedenie_cisla object(&poleHodnot, ddlzka);
object.zorad_Sorty();
相关文章:
- 内联asm编译器屏障(内存阻塞器)是算作外部函数,还是算作静态函数调用
- 生成代码(在编译时)以调用模板的每个实例化的静态函数
- 调用非静态函数作为谓词?
- 生成模板实例列表并对其调用静态函数
- 从静态方法调用静态函数指针
- 简化静态成员函数调用的方法
- C++类静态成员函数调用错误
- 调用非静态函数的重载括号运算符
- 如何直接调用类静态函数
- 静态函数调用不起作用 (C++)
- 从静态函数调用非静态变量
- 从静态函数调用非静态变量
- 通过此指针从静态函数调用类函数
- 链式静态函数调用之间的参数求值顺序
- c++模板函数跳过静态函数调用
- 由于静态链接(用于汽车工厂注册),c++丢失了静态函数调用
- 为什么friend类在静态函数调用时崩溃
- 从静态函数调用函数指针
- 内联和静态函数调用运算符
- 可以从静态函数调用构造函数