我想知道在 A 和 B 之间的类或结构中调用静态函数(和变量)的更好做法是什么。
A: ClassName::functionName();
B: functionName();
这是我的简单示例代码:
在头文件中,
typedef struct _mystruct
{
static void myfunction();
} t_mystruct;
在 CPP 文件中,
void t_mystruct::myfunction()
{
//do something
}
现在,在同一个 CPP 文件中,在 A 和 B 之间调用这个静态函数的更好做法是什么?
A: t_mystruct::myfunction();
B: myfunction();
最佳答案
直接调用 myfunction();
只有在 t_mystruct
的实现中才可行。在这种情况下,您可以根据自己喜欢的编码风格进行操作:
// .h
struct t_mystruct // You can declare it directly that way
{
static void myfunction();
void myOtherFunction();
};
// .cpp
void t_mystruct::myOtherFunction()
{
myfunction(); // That's fine!
t_mystruct::myfunction(); // That's fine too!
}
否则,您必须明确使用其完全限定名称:
void anywhereElse()
{
t_mystruct::myfunction(); // Mandatory
myfunction(); // Does not compile
}
这适用于您的整个代码库,而不仅仅是所考虑的 .cpp 文件。
关于c++ - 在类或结构中调用静态函数的好习惯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51456180/