C++中类里面定义 静态成员变量的问题

class a
{
int aa;
static int aaa;
};
请大家看看 这个类的定义有什么问题?
如果我把 static int aaa;改成static int aaa=10;
一样出错 请问这是为什么?

类的静态数据成员在 类内只能声明,定义和初始化必须在类外
可以这样
class a
{
int aa;
static int aaa; //静态数据成员声明
};
int a::aaa=10; //静态数据成员的定义和初始化
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-14
类中的静态成员变量的初始化必须在类外实现!!
并且静态变量定义的关键是:
static const int aaa;
再类外初始化的格式是:const 数据类型 【类名】::变量名=数字 例如该程序中:
const int a::aaa=10;

C++ 我想在类中定义一个静态变量,但是不知道为什么会出错
类中是可以定义类的,这叫嵌套类。程序没有问题,就是需要调整下变量声明的顺序。另外静态成员变量要初始化。虽然你这个例子不初始化没有问题,但是到使用的时候肯定是会报错的。class Linkstack { private:class stack_data { double value;stack_data* next;};public:static stack_data* data_top;}...

c++ 为什么不能在类类对static成员定义? 我看的都是类内声明,类外定义...
你好,静态数据成员为各对象所共有,而不只属于某个对象的成员,所有对象都可以引用它。静态的数据成员在内存中只占一份空间,而不是每个对象都分别为它保留一份空间。所以静态数据成员只能在类体外进行初始化。再复制一下看到的别人的解释吧。静态数据成员对于所有类对象来说只有一份,因此不能在类体内...

C++的类中怎么用静态变量?
C++类支持静态成员变量,在使用的时候,遵循类内声明,类外定义的原则。即在类内部进行声明该变量的类型以及静态属性,但不可以赋初始值,而是要在类外定义,同时赋初始值。如 class class_type{ static var_type var; };var_type class_type::var = init_value;初始值部分,=init_value可以省略...

静态成员变量定义
在面向对象的编程语言如C++和C#中,类的成员变量可以通过使用关键字'static'(称为静态成员变量)进行定义。这种变量的特性在于,它并非与类的每个实例独立存在,而是被所有实例共享。例如,在类A中定义一个static整型变量number,初始值设为0。这样,无论创建多少个A的实例,它们都能共享同一个number变量。

关于对c++类和结构体中的静态的一些理解
在C++编程中,类和结构体都允许我们定义静态成员变量和静态成员函数。这些静态成员是与类或结构体本身关联的,而非与某个具体实例相关联,因此它们在所有实例间是共享的。以下将分别对类和结构体中的静态成员进行详细说明。C++类中的静态 在C++中,我们可以通过使用static关键字来声明类的静态成员变量和...

c++类里面添加类的静态成员指针变量如何初始化
static Person*p; \/\/这个就是类里面的静态指针变量 };那么,在类外指针的初始化,有两种,要么指向一块内存空间,要么是空指针,初始化可以这样写 Person* Person :: q = new Person; \/\/这个就是类外面初始化。或者 Person* Person :: q=NULL;参看如下代码:include<iostream>using names...

c++请问这个怎样怎样执行的??
类C0中定义了一个静态成员变量m_Number,对于静态数据成员有以下特性:静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷贝,由该类型的所有对象共享访问。也就是说,静态数据成员是该类的所有对象所共有的。对该类的多个对象来说,静态数据成员只分配...

静态(s_)、成员(m_)、全局(g_)变量在c++中有什么含义、作用?
静态变量定义后,所有对象的这个变量都分配同一个地址,改变一个对象的这个变量会影响其他对象的一个变量。成员变量,在每创建一个对象时都会分配一个不同的地址空间,改变其中一个对象的这个变量,并不会影响其他成员的这个变量。成员变量的作用域,也就是有效范围是整个类。全局变量是说明语句不在任何一...

C++类中静态变量和静态方法使用介绍
1、静态数据成员在定义或说明时前面加关键字static。\/\/静态变量的定义 2、静态成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式如下:<数据类型><类名>::<静态数据成员名>=<值> \/\/静态变量的初始化 这表明:下面举一例子,说明静态数据成员的应用:注意,static成员的初始化要在实现...

c++中可以对类中私有成员中的静态变量初始化吗?
1.static成员的所有者是类本身和对象,但是多有对象拥有一样的静态成员。从而在定义对象是不能通过构造函数对其进行初始化。2.静态成员不能在类定义里边初始化,只能在class body外初始化。3.静态成员仍然遵循public,private,protected访问准则。4.静态成员函数没有this指针,它不能返回非静态成员,因为...

相似回答