株洲市荷塘区城乡建设局网站,seo优化怎么做,网站安全证书过期怎么处理,定制手机网站C面向对象编程三大特性为#xff1a;封装#xff0c;继承#xff0c;多态。C认为万事万物皆为对象#xff0c;对象有属性和行为。比如#xff1a;游戏里的地图场景可以看作是长方形对象#xff0c;属性场景id#xff0c;有长#xff0c;有宽#xff0c;可能有NPC…C面向对象编程三大特性为封装继承多态。C认为万事万物皆为对象对象有属性和行为。比如游戏里的地图场景可以看作是长方形对象属性场景id有长有宽可能有NPC可能有玩家可能有怪物...行为有设置长度设置宽度获取长度获取宽度...游戏里的玩家可以看作是对象属性有玩家名字血量魔法值攻击力技能...行为有上线下线有行走释放技能攻击怪物...游戏里的怪物可以看作是对象属性有怪物名字血量魔法值攻击力技能...行为有释放技能攻击玩家可能有行走...具有相同属性和行为的对象我们可以抽象称为类。比如游戏里的地图场景属于场景类游戏里的玩家属于玩家类游戏里的怪物属于怪物类将具有相同属性和行为的对象抽象为类并对属性和行为加以权限控制来表现事物我们称为封装。定义一个类的语法class 类名
{权限控制:行为;权限控制:属性;
};example设计一个怪物类并创建一个怪物设置怪物id并打印这个怪物id。#include iostream
using namespace std;class Monster
{//权限控制public://行为void setMonsterId(const int monsterId){m_monsterId monsterId;}int getMonsterId(){return m_monsterId;}//权限控制private://属性int m_monsterId;
};int main(int argc, char *argv[])
{Monster m;m.setMonsterId(10001);cout 怪物id m.getMonsterId() endl;return 0;
}在设计类的时候可以把属性和行为放在不同的权限下控制属性和行为的访问权限。访问权限有三种关键字权限访问控制public公共权限类内可以访问类外也可以访问子类可以访问protected保护权限类内可以访问类外不可以访问子类可以访问private私有权限类内可以访问类外不可以访问子类不可以访问example设计一个人类有姓名有车有存款属性。人的姓名大家都可以知道的我们可以设置为公共权限人拥有一辆车外人不能用人的儿子女儿可以拿来用我们可以设置为保护权限人拥有多少存款是私有的只有自己可以访问。#include iostream
using namespace std;class Person
{//公共权限public:void setName(const string name){m_name name;}string getName(){return m_name;}void setCar(const string car){m_car car;}string getCar(){return m_car;}void setMoney(const double money){m_money money;}double getMoney(){return m_money;}string m_name;//保护权限protected:string m_car;//私有权限private:double m_money;
};int main(int argc, char *argv[])
{Person person;person.setName(Jim);person.setCar(劳斯莱斯);person.setMoney(1000000);cout 姓名 person.m_name endl; //正确m_name是公共权限类外可以访问cout 姓名 person.getName() endl; //正确getName()是公共权限类外可以访问//cout 车 person.m_car endl; //错误m_car是保护权限类外不可以访问cout 车 person.getCar() endl; //正确getCar()是公共权限类外可以访问//cout 存款 person.m_money endl; //错误m_money是私有权限类外不可以访问cout 存款 person.getMoney() endl; //错误getMoney()是公共权限类外可以访问return 0;
}C中类class和结构体struct的区别在C中类class默认的访问权限为私有结构体struct默认的访问权限为共有#include iostream
using namespace std;class CMonster
{//没有声明访问权限默认为私有void setMonsterId(const int monsterId){m_monsterId monsterId;}int getMonsterId(){return m_monsterId;}int m_monsterId;
};struct SMonster
{//没有声明访问权限默认为共有void setMonsterId(const int monsterId){s_monsterId monsterId;}int getMonsterId(){return s_monsterId;}int s_monsterId;
};int main(int argc, char *argv[])
{CMonster cm;//cm.setMonsterId(10001); //错误类默认访问权限为私有类外不能访问//cm.m_monsterId 10002; //错误类默认访问权限为私有类外不能访问SMonster sm;sm.setMonsterId(20001); //正确结构体默认访问权限为共有结构体外可以访问cout 怪物id sm.getMonsterId() endl;sm.s_monsterId 20002; //正确结构体默认访问权限为共有结构体外可以访问cout 怪物id sm.getMonsterId() endl;return 0;
}在设计类的时候应该将所有成员属性设置为private权限这样可以自己写get和set方法控制属性的读写权限。可读可写属性提供get属性方法和set属性方法只读属性提供get属性方法只写属性提供set属性方法。#include iostream
using namespace std;class Monster
{//共有权限public://行为void setMonsterId(const int monsterId){m_monsterId monsterId;}int getMonsterId(){return m_monsterId;}void setName(const string name){m_name name;}string getName(){return m_name;}void setBlood(const int blood){m_blood blood;}int getBlood(){return m_blood;}//私有权限private://属性int m_monsterId; //怪物idstring m_name; //怪物名字int m_blood; //血量
};int main(int argc, char *argv[])
{Monster m;m.setMonsterId(10001);m.setName(紫衣仙子);m.setBlood(1000);cout 怪物id m.getMonsterId() , 怪物名字 m.getName() , 血量 m.getBlood() endl;return 0;
}好了关于C面向对象三大特性之一封装先写到这。