C++之类与对象 [2]: 类的成员
常数据成员
- 值在程序运行期间不可变
- 定义格式:
const 类型 数据成员名称;
- 初始化:只能通过构造函数中的初始化列表进行
常成员函数
- 不能修改对象成员值的函数
- 定义格式:
类型 成员函数名称(参数列表) const;
- 常成员函数不能调用类中非常成员函数
- 静态成员函数不能定义为常成员函数
- 如果对象为常量,则只能调用其常成员函数
静态数据成员
静态数据成员只有一份,由该类所有对象共享
- 声明格式:
static 类型 静态数据成员名称;
- 仅声明,不在对象上分配空间
- 定义格式:
类型 类名称::静态数据成员名称 = 初始值;
- 必须在外部初始化,初始化动作与访问控制无关
静态成员函数
- 在类而不是对象上调用
- 目的:访问类的静态数据成员,若要访问类的非静态数据成员,必须指定对象或者使用指向对象的指针(静态成员函数没有缺省的this指针)
// 类声明 |
静态常数据成员
- 值在程序运行期间不可变,且只有唯一副本
- 声明格式:
static const 类型 数据成员名称; |
- 定义格式:需在类外定义
- 初始化:可以在类内声明时初始化(只允许对整形常量在类内设定初值,且可能某些旧式编译器不支持),也可以在类外定义时初始化
class A |
友元函数和友元类
- 慎用->会破坏类的数据封装和信息隐藏
- 类的友元可以访问该类对象的私有与保护成员
- 友元可以是函数、其他类成员函数,也可以是类
- 定义格式:
friend 函数或类声明; |
- 两个类的友元关系不可逆,除非互为友元
- 友元没有访问控制,所以不需要public private protect等修饰,修饰了也都一样
class Circle |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 旭穹の陋室!
评论