C++静态成员函数
1. 静态成员函数不可以调用类的非静态成员。因为静态成员函数不含this指针。
2. 静态成员函数不可以同时声明为 virtual、const、volatile函数。
C++静态成员在Class中仅限声明,但没有定义,不能使用,只有在初始化时才被定义,能被使用。 如下
class TestA
{
public:
static void CreateTestA();
private:
TestA() = default;
~TestA() = default;
private:
static TestA *self;
static int a;
};
// 初始化
TestA *TestA::self = nullptr;
int TestA::a = 1;
void TestA::CreateTestA()
{
TestA::a = 101;
if (nullptr == TestA::self)
TestA::self = new TestA();
}
上述如果没有初始化,会出现,如:无法解析的外部符号:“ static class TestA * TestA::self “