加油鸭
C++中的类
- 类中的数据默认是 private 的
- 结构 struct 默认是 public,而类为 private。
- 类方法可以访问类的 private 组件。
- 同一个类的方法之间可以不使用作用域解析运算符直接互相调用。
- 类创建的每个对象都有自己的存储空间,用于存储其内部变量和成员,但同一个类的所有对象共享同一组类方法,即每种方法只有一个副本。
类的构造函数和析构函数
- 构造函数和析构函数都没有声明类型。
当且仅当没有定义任何析构函数时,编译器才会提供默认构造函数。当类定义了构造函数后,就必须为它提佛那个默认构造函数。如果提供了非默认构造函数,但没有提供默认构造函数,想使用是默认构造函数不正确的。
1
A a; // 会报错
接受一个参数的构造函数允许使用赋值语法将对象初始化为一个值。
1
Object obj = 1; // 如果有构造函数 Object(int)的话
类作用域
- 作用域为类的常量 static
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//枚举类型
class Bakery
{
private:
enum {Months=12};
double costs[Months];
...
}
//使用关键字static
class Bakery
{
private:
static const int Months=12;
double costs[Months];
}
//Months为静态变量,它和其他静态变量存储在一起。
this指针
- this指针指向用来当前调用成员函数的对象的地址。
- 在成员函数后面加const的实质是给第一个参数即this指针加const属性。
- his指针被作为隐藏参传递给成员函数 – 且只能是第一个参数。
1 | //stock00.h |