Chinaunix首页 | 论坛 | 博客
  • 博客访问: 445156
  • 博文数量: 138
  • 博客积分: 4114
  • 博客等级: 上校
  • 技术积分: 1341
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-14 20:41
文章分类

全部博文(138)

文章存档

2014年(1)

2013年(2)

2012年(78)

2011年(13)

2010年(34)

2009年(10)

我的朋友

分类: LINUX

2010-03-11 15:29:36

c++ primer  点滴记录

(1) 正如你看到的, 数据成员的声明看起来很像在块域或名字空间中的变量声明。但是, 除了静态(static)数据成员外,数据成员不能在类体中被显式地初始化。例如
class First
{
    int memi = 0;  //错误
    double memd = 0.0  //错误
};
这一点我以前不知道, 现在知道了。类的数据成员是通过类的构造函数进行初始化的。
(2) 只有被声明为const的成员函数才能被一个const类对象调用。关键字const被放在成员函数的参数表和函数定义之间。对与在类体外定义的const成员函数,我们必须在它的定义和声明同时指定关键字const。而且把一个修改类数据成员的函数声明为const是非法的

这段话有意思:

   构造函数和析构函数是两个例外,即使构造函数和析构函数不是const成员函数,const类对象也可以调用它们。当构造函数执行结束,类对象已经被初始化时,类对象的常量性被建立起来了。析构函数一调用,常量性就消失了。所以一个const类对象"从构造完成时刻到析构开始时刻"这段时间内被认为是const。

(3)  一般的, 静态数据成员在该类定义之外被初始化。如同一个成员函数被定义在类定义之外一样,在这种定义中的静态成员的名字必须被其类名限定修饰。
作为特例,有序型的const静态数据成员可以在类体中用一常量初始化。
  
阅读(441) | 评论(0) | 转发(0) |
0

上一篇:数据库_分库_分表

下一篇:shell_001

给主人留下些什么吧!~~