当前位置: 首页 > news >正文

qq做兼职给网站给你专业单位网站开发

qq做兼职给网站给你,专业单位网站开发,公司宣传网页,淘宝网首页电脑版登录入口9. C虚函数与多态 虚函数 virtual修饰的成员函数就是虚函数 虚函数对类的内存影响:需要增加一个指针类型的内存大小无论多少虚函数#xff0c;只会增加一个指针类型的内存大小虚函数表的概念: 指向虚函数的指针 我们自己也可以通过虚函数表指针去访问函数(一般做这样的操作…9. C虚函数与多态 虚函数 virtual修饰的成员函数就是虚函数 虚函数对类的内存影响:需要增加一个指针类型的内存大小无论多少虚函数只会增加一个指针类型的内存大小虚函数表的概念: 指向虚函数的指针 我们自己也可以通过虚函数表指针去访问函数(一般做这样的操作不写数据类型) #include iostream #include string using namespace std; class MM { public:virtual void print() //1.会写{cout 第一个虚函数 endl;}virtual void printData() {cout 第二个虚函数 endl;} protected:}; int main() {cout sizeof(MM) endl; //2.对类内存影响MM mm;mm.print();mm.printData();//了解一下.32位没问题64位 vs2022 问题int** pObject (int **)(mm);typedef void(*PF)();PF pf (PF)pObject[0][0];pf(); //调用第一个虚函数pf (PF)pObject[0][1];pf(); //调用第二个虚函数return 0; } 纯虚函数 具有一个或者多个纯虚函数的类型称之为抽象类抽象类特性: 抽象类不能创建对象抽象类可以创建对象指针 纯虚函数也是一个虚函数所以也需要virtual修饰纯虚函数是没有函数体函数0 #include iostream using namespace std; //抽象类 class MM { public://纯虚函数virtual void print() 0; protected:string name; }; int main() {//MM object; 抽象类不能构建对象MM* pMM nullptr;return 0; }虚析构函数 virtual修饰的析构函数 就是虚析构函数 当父类指针被子类对象初始化的时候需要用虚析构函数所有析构函数底层解析其实函数名相同 #include iostream #include string using namespace std; class MM { public:void print() {cout MM::print endl;}virtual ~MM() //虚析构函数{cout ~MM endl;} }; class Son :public MM { public:void print() {cout Son::print endl;}~Son() {cout ~Son endl;} };int main() {MM* pMM new Son; //构造子类对象必须构造父类对象在构造自身pMM-print(); //MM看类型delete pMM;pMM nullptr;return 0; }虚函数和多态 多态的概念并不重要重要的是需要知道那个对象指针在特定情况调用那个成员才是重要 多态概念: 指在继承中指针的同一行为的不同结果举个栗子(男生和女生上厕所都是上厕所的行为男生站着女生蹲着) 实现多态的两个前提条件: 必须是public继承必须父类存在virtual类型的成员函数,并且子类中存在该函数的同名函数一定存在指针的引用 #include iostream #include string using namespace std; class MM { public:void print(){cout MM::print endl;}virtual void printData() {cout MM virtual printData endl;}virtual ~MM() //虚析构函数{cout ~MM endl;} }; class Son :public MM { public:void print(){cout Son::print endl;}void printData() {cout Son printData endl;}~Son(){cout ~Son endl;} }; int main() {//正常对象的访问不存在多态//都是就近原则cout 正常对象访问 endl;MM mmobject;mmobject.print();mmobject.printData();Son sonobject;sonobject.print();sonobject.printData();//正常的指针访问cout 正常指针访问 endl;MM* pMM new MM;pMM-print();pMM-printData();Son* pSon new Son;pSon-print();pSon-printData();//非正常的初始化//父类指针被子类初始化cout 不正常的指针赋值 endl;MM* pObject new Son;pObject-print(); //没有virutal 看指针类型 调用MM::printpObject-printData(); //有virtual 看对象 调用Son::printDatapObject new MM;pObject-printData(); //调用MM中cout 引用类型 endl;MM girl sonobject;girl.print();girl.printData();return 0; }虚函数在继承特殊现象 #include iostream #include string using namespace std; class A { public:virtual void print(){cout A endl;}virtual void printData() final //禁止子类重写方法{cout A endl;} };//final: 父类中用来禁止子类重写同名方法 //override: 强制重写起说明作用表示当前子类当前方法是重写父类 class B :public A { public://重写:子类实现父类虚函数的同名函数void print() override{cout B endl;}//void printData(){} //final禁止重写 }; class C :public B { public:void print() {cout C endl;} }; int main() {B* pb new C;pb-print(); //调用C::printpb new B;pb-print(); //调用B::printreturn 0; } 纯虚函数和ADT ADT: 抽象数据类型 抽象类本身不能创建对象但是子类如果重写类父类中纯虚函数子类是可以被允许创建对象 抽象类一般用于架构项目构建好整个项目模块具体细致工作可以交给子类去实现 采用ADT方式设计项目可以把这个模块构建出来并且测试代码也可以提前完成。 #include iostream using namespace std;//抽象产品类 class AbstractProduct { public:virtual void printProduct() 0; }; //抽象系统类---ADT //析构函数一定写虚析构函数 class AbstractSystem { public:~AbstractSystem() {}virtual void insertData(AbstractProduct* product) 0;virtual void printData()const 0;virtual int size() const 0;virtual bool empty() const 0; };class ArraySystem :public AbstractSystem { public:void insertData(AbstractProduct* product) {}void printData()const {}int size() const {return 0;}bool empty() const {return 0;} }; class ListSystem :public AbstractSystem { public:void insertData(AbstractProduct* product){}void printData()const{}int size() const{return 0;}bool empty() const{return 0;} }; int main() {AbstractSystem* p new ArraySystem;p-printData();//UI中用的比较多//MFC ---不需要自己创建只需要重写一个构建对象即可p new ListSystem;p-printData();return 0; }
http://www.hkea.cn/news/14471322/

相关文章:

  • 上海新站专家网络公司建设企业网站企业网上银行登录官网
  • 济南做网站互联网公司排名做网上竞猜网站合法吗
  • 网站建设逻辑组织的几种模型做网站需要多少钱卖片可以吗
  • 网站界面切片做程序小程序登录官网
  • 网站源码修复自我介绍的网页
  • 可道网站建设如何做好一个购物网站
  • 优秀企业网站设计做网站公司cnfg
  • 哪家做网站的公司好现在网络公司做网站是用cms还是新版编程_
  • 官方网站的必要性晚上睡不着正能量网站
  • 长沙竞价网站建设报价用html5做课程教学网站
  • win7 iis发布网站教程什么软件可以发布广告信息
  • 购物系统陕西网站建设优化建站
  • 新乡商城网站建设哪家专业网站后台无法修改信息
  • 网站建设经山东淄博网络科技有限公司
  • 果洛wap网站建设哪家好网站开发的职位要求
  • 网站开发的主要特点中心建设投官方网站 软件下载
  • 佛山外贸型网站吉木萨尔县建设局网站
  • 电子政务网站建设要求基因数据库网站建设
  • 如何在文本上做网站链接符号jsp做网站步骤
  • 诸城建设局网站网站正能量点进去就能看
  • 菲律宾做网站好吗成品网站1688特色
  • 自己做动漫 哪个网站赚钱设计图ai生成
  • 网站建设公司与前端脚底长了像水泡一样的东西很痒什么原因
  • 汽车4s销售网站模板汉邦未来网站开发有限公司
  • 现在宁波做网站凡科论文评审平台
  • com网站是用什么做的江西城乡建设部网站首页
  • 网站建设的技能有哪些内容济源做网站的公司
  • 石家庄网站搭建公司大二网络营销实训报告
  • 自己做网站 服务器好牌子网
  • 深圳工程造价信息网官网淄博网站文章优化