类
具有相同属性的一类事物,将不同类型的数据和与这些数据相关的操作封装在一起,类的实例是对象。
定义:
class 类名//类名一般采取首字母大写的格式,成员访问权限的声明出现顺序无要求。
{
public:(public成员)
private:(private成员)
protected:(protected成员)
};访问权限(类的默认访问权限为私有)
public(公有访问权限):提供类接口的功能,成员和程序中均可访问。
private(私有访问权限):被隐藏的数据,只有该类的成员或友元函数可以访问,
派生类和外部函数不能访问。
protected(保护):成员函数和派生类都可以访问,外部类外部函数不能访问。定义成员函数
①类体内定义
②类体外定义class Cdate { void set(int a); }; void Cdate::set(int a)//格式为 返回值类型 类名::函数名{函数体} {函数体}
调用成员函数
成员运算符调用:Cdate obj;
obj.set(1);
指针调用:Cdate *pobj;//pobj是指向obj的指针
pobj=&obj;
pobj->set(1);
引用调用:Cdate &a=obj;//a是对象obj的引用
a.set(1);重名问题
1、类型名隐藏了非类型名,如果要使用非类型名则在使用非类型名前加作用域运
算符::
int N;
class N{};
void fun()
{
class N a;//类N屏蔽了全局变量
::N=3;
}
2、非类型名隐藏了类型名,使用类型名时,在前加class
class Num{};
void fun(int Num)
{
class Num a;//类名前加class
Num++;//形参自增
}类与结构体的区别
1、结构体默认访问权限为public,类默认private。
2、结构体通过特定语法格式初始化,类通过构造函数和析构函数初始化。