一、类的定义
类有点类似 C 语言的结构体,是一种自定义类型。但类里面除了定义一些成员变量外还有方法(成员函数),在访问的时候要指定类域。
在类定义时首先用一个 class 关键字,在后面接着类的名字,然后使用 { } 在花括号里面定义成员变量和成员函数,最后需要在花括号外加分号,如下:
class Stack {
void Init(int n = 4) {
arr = (int*)malloc(sizeof(int) * n);
if (nullptr == arr) {
perror("malloc 申请空间失败");
return;
}
capacity = n;
size = 0;
}
//......
int* arr;
size_t size;
size_t capacity;
};
这里 class 也可以替换成 struct,在类里面的函数默认都为内联函数,当然它不一定都展开具体还取决于编译器。
二、访问限定符
在定义类的时候通常会用一些关键字来限定类成员的访问,访问限定符有 public,private,protected。
- public 修饰的成员在类外可以直接被访问;protected 和 private 修饰的成员在类外不能直接被访问,protected 和 private 的具体区别这里先不讲解。
- 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止,如果后面没有访问限定符,作用域就到 } 即类结束。
- class 定义成员没有被访问限定符修饰时默认为 private,struct 默认为 public。
- 一般成员变量都会被限制为 private/protected,需要给别人使用的成员函数会放为 public。
class Stack {
public:
void Init(int n = 4) {
arr = (int*)malloc(sizeof(int) * n);
if (nullptr == arr) {
();
;
}
capacity = n;
size = ;
}
:
* arr;
size;
capacity;
};


