use*_*759 5 c++ variables static
如果我有类似的课程
class MyClass {
public:
int myMember1;
int myMember2;
int myMember3;
};
Run Code Online (Sandbox Code Playgroud)
每次我实例化一个MyClass连续三个空间的对象int被分配,那么当我有类似的东西时
class MyClass {
public:
static int myMember1;
int myMember2;
int myMember3;
};
Run Code Online (Sandbox Code Playgroud)
这次如何分配内存?
我问,因为当我声明同一个类的多个实例时,我不完全确定如何分配内存,是否有指向静态成员的指针?
正如其他人已经说过的那样,您必须在类定义之外为静态成员变量显式分配空间.
在回答您的其他问题时,静态成员变量与类对象无关.也就是说,即使您的MyClass对象不再存在(直到程序终止),它们仍将继续存在,并且可以在您的类的所有实例之间共享.
假设您创建了MyClass类的多个实例,如下所示:
class MyClass {
public:
static int myMember1;
int myMember2;
int myMember3;
};
int MyClass::myMember1 = 1;
int main()
{
MyClass mc1;
MyClass mc2;
mc2.myMember1 = 2;
std::cout << mc1.myMember1 << '\n';
std::cout << mc2.myMember1 << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出将是:
2
2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1004 次 |
| 最近记录: |