类的作用域
类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 ::
作用域操作符指明成员属于哪个类域(这是为了区分函数名相同,功能类似但是作用域不同的函数)
//.h
typedef int STDataType;
typedef int QDataType;
typedef struct QNode {
QNode* next;
QDataType data;
}QNode;
class Stack {
public:
void Init(int num=4 );
void Push(STDataType data);
void Destroy();
private:
STDataType* _a;
int _top; // 栈顶
int _capacity; // 容量
};
class Quene {
public:
void Init();
void Push(QDataType x);
void Destroy();
private:
QNode* front;
QNode* reer;
int size;
};
//.cpp
void Stack::Init(int num ){}
void Stack::Push(STDataType data){}
void Stack::Destroy(){}
void Quene::Init(){}
void Quene::Push(QDataType x){}
void Quene::Destroy(){}
//可以通过作用域限定符来区分不同类作用域功能类似函数名相同的成员函数
类的实例化
用类类型创建对象的过程,称为类的实例化
- 类是对对象进行描述的,是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它(相当于一个房屋图纸,规定了有什么,但是你不能把实际存在的东西放进去)
- 一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量(相当于根据图纸做出了的房子,可以在房子里放实际存在的东西)
Stack._top();
//这个是错误的,Stack这个类类型并没有开辟空间,并不能去访问不存在于实际存储空间的成员
Stack a;
a._top();
//这个是对的,先对Stack这个类实例化,开辟了空间,可以访问这片空间中_top成员的数据