类 Class
定义
类定义之后必须接一个分号或者声明
1 | class ClassName{ |
数据成员
默认都是非静态,不能显式初始化
静态可以初始化(类共享)
1 | class A{ |
成员函数
类中定义函数声明,也可以函数定义
1 | class A{ |
访问
public
1
2
3
4
5A a;
a.name;
A * pa = new A;
pa->name;1
2//访问静态
A::static_field;private 类私有
protected 派生类共享
友元函数
- friend 不受 public,private,protected 影响
- 使得某个函数可以访问
声明
- class A; //只声明没有定义
构造函数 没有返回类型
构造函数不能为const或者volatile
1 | class Screen{ |
const volatile
const
- 定义了就不可以修改
- 类成员函数const 不可以修改成员
1
2
3class A{
void xxx() const;
};volatile 编译器无法控制或者监测的
this 指针
- 指向对象本身
- 在需要返回对象自身时候使用
- 返回引用 return *this;
- 返回指针 return this;
静态成员
- 没有this指针
- 类定义时候初始化
- A::field 访问
类成员指针
- 指向类成员a的short 指针
1 | short Screen::* p = &Screen::height; |
- 静态成员指针 类似普通指针
union
1 | union { |
嵌套类
- Tree 嵌套Node, Tree::Node
1 | class Tree{ |
拷贝构造函数
- 区分普通类型和对象指针类型拷贝
析构函数
- ~ClassName(); 无返回类型
- delete 相关new开辟的空间
- delete 时候不需要判断 是否!=0编辑器隐式执行
- 不会删除不指向认为对象的指针
操作符重载
- istream & operator >> (istream &,string &);
- 左值 右值
- 类操作符 省略左值