相关疑难解决方法(0)

如果没有创建该类的对象,那么类的静态成员是否会占用内存?

假设我有一个类,我有一个静态成员,但我不创建任何类型的对象.内存是否会被静态变量占用?如果它被占用,将它放入课堂有什么意义?

c++ static class

19
推荐指数
2
解决办法
2万
查看次数

类的自己类型的静态类成员

可能重复:
如果没有创建该类的对象,则类的静态成员是否占用内存?
一类中静态成员的内存分配

"一个类不被认为是定义的,直到它的类体完整,一个类不能拥有自己类型的数据成员.一个类可以有数据成员作为指针/引用它自己的类型."

  • C++入门(Lippman Lajoie)

说得通.

但是为什么这允许呢?

class justAClass
{
     public  : 
     justAClass();

     private :          
     static justAClass justAMember;
}
Run Code Online (Sandbox Code Playgroud)

对于指针,它是可以理解的.但是上面这个怎么样呢?我将如何决定这类课程的大小?它是一个递归的情况(没有基本条件)拥有自己类型的成员,即使它是静态的?

c++ recursion static member

6
推荐指数
1
解决办法
5577
查看次数

静态类成员的初始化

如果我尝试初始化obj_s它要求我做它const- 我不能这样做因为我必须继续计算我的创建对象.

#include<iostream>

class A
{
        static int obj_s=0;
public: 
        A(){ ++obj_s;cout << A::obj_s << "\nObject(s) Created\n"; }
}; 

int main()
{
A a,b,c,d;
}    
Run Code Online (Sandbox Code Playgroud)

下面的代码一直给我以下错误:

  [Linker error] undefined reference to `A::obj_s' 
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++ c++11

1
推荐指数
1
解决办法
406
查看次数

标签 统计

c++ ×3

static ×2

c++11 ×1

class ×1

member ×1

recursion ×1

visual-c++ ×1