类的介绍
类的三大特性:封装 继承 多态
类是在结构体的基础上进化而来
类由成员变量(属于对象),成员方法(属于类)构成
创建对象时开辟的空间是用来存储成员变量的
成员方法是属于类的,不属于对象。所有对象调用的方法,都是同一类方法
封装
封装的意义:
1.将属性和行为作为一个整体,就像生活中的事物
语法:class 类名{ 访问权限:属性 / 行为 };
如下一个简单的程序实现进行演示说明:
class PlayerBase
{
public: 访问权限
int m_nID; 微软写法,在每个属性命名开头加一个m_
char m_pszName;
int m_nHP;
int m_nMP;
double m_dbPosX;
double m_dbPosY; 以上都是属性
public: 访问权限
void text()
{
std::cout << "text" << std::endl 这是一个类方法,即行为
}
}
int main()
{
PlayBase Playerobject; 创建一个类对象
Playerobject.m_nID = 1; 由于是public访问属性,所以可以定义该属性
std::cout << Playerobject.m_nID << ste::endl; 同样因为是公共属性,所以也可以访问
}
2.将属性和行为加以权限控制
类具有访问权限:私有 公共 保护
在类中,所有成员默认私有(private),类中成员自己可以使用,类外不可用,也不可继承
公共的(public):大家都可以使用,也可以继承
保护的(protected):私有成员变量或函数在类的外部是不可访问的,只有本类和友元函数
可以问访问保护成员,并且子类也可以访问
私有的(private):私有成员变量或函数在类的外部是不可访问的,只有本类和友元函数可以访问
私有成员
默认情况下,类的所有成员都是私有的。
类与结构体
类和c结构体唯一的区别就在于结构体的默认权限为公共 ,类的默认权限为私有
私有属性访问
在一般类中,最为常见的类形式是只有ID处于公共属性内,其余在私有属性中,保障类私密性
假设我们将上述类中属性m_nHp设置为一个私有的访问属性,以此为例述一个外界能够访问私有属性和方法的方法:
类中定义public方法
int SetHP(int nHP) 外界赋值私有变量
{
m_nHp = nHP;
}
int GetHP() 返回私有变量
{
return m_nHP;
}
Playerobject.SetHP(12138); 定义私有变量m_nHp
Playerobject.GetHP() 返回该私有变量的值
匿名对象
匿名对象,不加对象名的类对象。创建对象时调用构造函数后,找不到先前创建的对象(没有对象名称)。周期只有一行,进入下一行时,该对象立刻销毁,调用析构函数 。
匿名对象的作用:能够更为直接地应用一次类中的方法,如:
Playerase().func() 先Playerase()创建匿名对象后Playerase().func()调用类方法