1.什么是类
以c语言为类比,类就是结构体的升级版.
结构体仅可以写数据,但是类既可以写数据,又可以写多个函数
2.以Stack为案例大体解释"类"
class Stack//定义一个类型(名称)为Stack的类(类名可以代表类型)
{
//成员变量,默认private
int* array;
size_t capacity;
size_t top;
public:
//成员函数
void Init(int n=4)
{
array = (int*)malloc(n * sizeof(int*));
if (array == nullptr)
{
perror("malloc fail");
return;
}
capacity = n;
top = 0;
}
class是一个类的关键字
2.1有关类的三个访问权限
public:公有 protected(保护) private(私有)
如果不指定任何访问权限,一律默认为private
从此访问限定符开始,到下一个访问限定符结束,
为此访问限定符的生效范围
一般情况下,成员函数为public,成员变量为private
2.2如何使用类
int main()
{
Stack st1;//定义了一个名为st1,类型为Stack的对象
Stack st2;
st2.Init();
st2.Push(3);
st2.Destroy();
cout << st2.Top() << endl;
return 0;
}
举个例子:类(Stack)相当一个建造房子的图纸,而对象st1,st2...相当于根据这个图纸建造出来的房子
2.2有关成员变量命前加"_"的命名方式
class Date
{
public:
void Init(int year, int month, int day)
{
_year = year;
_month = month;
_day = day;
//有些公司会在成员变量前面或者后面加一个"_"(下划线)
}
private:
int _year;
int _month;
int _day;
};
int main()
{
Date d;
d.Init(2024, 3, 31);
return 0;
}
为了区分成员变量和函数参数,加下划线一般就是成员变量