我是新的C++,我不完全理解静态变量的概念。 我有一个类中的静态变量。类中的静态变量和内存分配及其使用
class FCCommunication : public OEMThread
{
public:
FCCommunication();
static bool MASTER;
}
我使用初始化我的代码和分配内存到FCCommunication
源文件中以下两个语句
FCCommunication * FCObject = 0;
FCObject = new FCCommunication();
现在我的问题是,如果我尝试访问MASTER变量会发生什么在这样完成对象和内存分配之前
if(FCCommunication::MASTER)// this gets called before dynamic memory allocation.
{
//do something here.
}
很多初学者的书籍和教程都将静态成员变量描述为*类成员变量*。这是因为它们属于*类*而不是该类的任何特定实例。这就是你需要分别定义静态成员变量的原因。这又意味着您可以在创建任何实例之前使用静态成员变量(或静态成员函数)。 –
所以如果我把它叫做这个FCObject-> MASTER而不是FCC通信:: MASTER会有什么区别?它会破坏我的操作系统?考虑同样的分配情况。 – SPandya
您在使用受保护模式操作系统的现代系统上所做的任何操作都不会影响操作系统。并且使用特定的实例来访问一个静态成员是不寻常的,但不是无效的。 –