静态变量属于整个类,而不属于具体的某个对象。它的初始化不能通过构造函数或者参数表的方式定义,否则会出现error LNK2001: unresolved external symbol 静态变量的初始化必须在类外进行初始化数据类型类名::静态数据成员名=初值; 静态变量的调用可以直接通过类名::.....
分类:
编程语言 时间:
2014-06-28 23:58:19
阅读次数:
361
声明和定义
声明 是将一个名称引入一个程序.
定义 提供了一个实体在程序中的唯一描述.
声明在单个作用域内可以重复多次(类成员除外),定义在一个给定的作用域内只能出现一次. 一个定义就是一个声明,除非:
它定义了类的一个静态数据成员.它定义了类的非内联成员函数.
内部连接和外部连接
当一个实现文件(.cpp ...)编译时,预处理器(CPP)首先递归的包含头文件,形成一个保...
分类:
其他好文 时间:
2014-06-16 12:42:05
阅读次数:
225
C++对象模型内存布局例如以下:非静态数据成员在对象之内静态数据成员在对象之外静态、非静态成员函数在对象之外类中存在虚函数时,一个类相应一个virtual
table放在对象之外,对象中安插一个指针vptr指向这个表。測试例程:#include using namespace std; class....
分类:
编程语言 时间:
2014-06-03 09:58:23
阅读次数:
283
关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对像的状态也会随之发生变化!如果一个类的成员函数被声明为const类型,表示该函数不会改变对象的状态,也就是该函数不会修改类的非静态数据成...
分类:
其他好文 时间:
2014-05-26 12:13:24
阅读次数:
243
静态数据成员是一种特殊的数据成员,它属于类不属于对象,但是这个类的所有对象使用它。/***********************************第五篇***********************************/引入:一般不同对象的数据成员各自有值,互不相干;但是有时候希望某个或...
分类:
编程语言 时间:
2014-05-22 13:42:01
阅读次数:
582
静态数据成员可以被非静态成员函数访问。但静态成员函数只能访问静态数据成员。静态数据成员从属于某一个类,而不是某一个类的对象。同理,静态成员函数也是一样。追问定义静态成员函数的作用有何在呢回答静态成员函数隶属于类,不用实例化对象,就可以直接调用静态成员函数来操作静态数据成员提问者评价太给力了,你的回答...
分类:
编程语言 时间:
2014-05-21 20:30:21
阅读次数:
270
和静态数据成员一样,静态成员函数是类的一部分,而不是对象的一部分。如果要在类外调用公用的静态成员函数,要用类名和域运算符“∷”。如Box∷volume(
);实际上也允许通过对象名调用静态成员函数,如a.volume( );但这并不意味着此函数是属于对象a的,而只是用a的类型而已。静态成员函数的作用...
分类:
其他好文 时间:
2014-05-21 20:25:07
阅读次数:
313
当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。静态方法就是与该类相关的,是类的一种行为,而不是与该类的实例对象相关。
静态数据成员的用途之一是统计...
分类:
其他好文 时间:
2014-05-21 20:15:29
阅读次数:
249
C++对象模型内存布局如下:
非静态数据成员在对象之内静态数据成员在对象之外静态、非静态成员函数在对象之外类中存在虚函数时,一个类对应一个virtual table放在对象之外,对象中安插一个指针vptr指向这个表。
测试例程:
#include
using namespace std;
class A {
public:
int x, y;
static...
分类:
编程语言 时间:
2014-05-18 07:46:31
阅读次数:
234
C++类中常量数据成员初始化和静态成员初始化...
分类:
编程语言 时间:
2014-05-15 23:56:16
阅读次数:
407