gpt4 book ai didi

c++ - 什么时候在 C++ 类中使用关键字 "static"?

转载 作者:太空宇宙 更新时间:2023-11-04 15:28:56 25 4
gpt4 key购买 nike

代码

 static void MyClass::ThreadEntryStatic()
{
//...
}

void MyClass::Begin()
{
CreateThread(..,ThreadEntryStatic,..);
}

在什么情况下我们应该在类中使用静态?

最佳答案

可以在三个地方使用关键字static。一个是在结构/类的声明中,当该上下文意味着该方法是类方法而不是实例方法时。这意味着直接调用此方法,您不需要实例。从这个静态方法,你不能访问实例变量。

在MyClass.h中

struct MyClass
{
static void ThreadEntryStatic();

void Begin();
};

在 MyClass.cpp 中

void MyClass::ThreadEntryStatic()
{
}

void MyClass::Begin()
{
CreateThread(.., MyClass::ThreadEntryStatic, ...);
}

使用 static 关键字的第二种情况是在文件范围内,您不希望声明的变量的可见性在文件外部可见。您也可以为此使用匿名命名空间。

使用 static 关键字的第三种情况是在方法范围内,并且该值在函数执行之间保留(并在第一次赋值时初始化)。

关于c++ - 什么时候在 C++ 类中使用关键字 "static"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/800761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com