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

山东省建设工会网站oracle数据库做的网站

山东省建设工会网站,oracle数据库做的网站,上国外网站 dns,深入浅出wordpress 中文文章目录 子类指针,父类指针分别调用virtual函数,与非virtual函数虚函数中尽量不要使用默认参数!!! 子类指针,父类指针分别调用virtual函数,与非virtual函数 virtual函数,通过指针调…

文章目录

  • 子类指针,父类指针分别调用virtual函数,与非virtual函数
  • 虚函数中尽量不要使用默认参数!!!

子类指针,父类指针分别调用virtual函数,与非virtual函数

virtual函数,通过指针调用的是子类函数
非virtual函数,取决于指针的类型

class Person {
public:void Print(){cout << "Person" << endl;}virtual void VirtualPrint(){cout << "VirtualPrint Person" << endl;}
};class Studen : public Person {
public:void Print(){cout << "Student" << endl;}virtual void VirtualPrint(){cout << "VirtualPrint Student" << endl;}
};int main()
{Person *p = new Studen();Studen *s = new Studen();p->Print();     // Persons->Print();     // Studentp->VirtualPrint();  // VirtualPrint Students->VirtualPrint();  // VirtualPrint Studentreturn 0;
}

虚函数中尽量不要使用默认参数!!!

class Father {
public:void func1(int val = 100){cout << "Father \t: func1" << "\t" << val << endl;}virtual void func2virtual(int val = 100){cout << "Father \t: func2" << "\t" << val << endl;}
};class Son : public Father {
public:void func1(int val = 200){cout << "Son \t: func1" << "\t" << val << endl;}virtual void func2virtual(int val = 200){cout << "Son \t: func2" << "\t" << val << endl;}
};

当指针类型与实体类型一致时,很容易分清楚其调用规则

void group1()
{Father *f = new Father();Son *s = new Son();f->func1();s->func1();// Father  : func1 100// Son     : func1 200f->func1(300);s->func1(300);// Father  : func1 300// Son     : func1 300f->func2virtual();s->func2virtual();// Father  : func2 100// Son     : func2 200f->func2virtual(300);s->func2virtual(300);// Father  : func2 300// Son     : func2 300
}

当指针类型与实体类型不一致时,很不容易分清楚其调用规则
在virtual函数中使用默认参数,因为virtual是动态绑定,导致都是调用了子类函数,但是默认参数是根据指针类型来使用的

void group2()
{Father *f = new Son();Son *s = new Son();f->func1();s->func1();// Father  : func1 100// Son     : func1 200f->func1(300);s->func1(300);// Father  : func1 300// Son     : func1 300// virtual func use dynamic func, but use ptr default args// 重点处f->func2virtual();s->func2virtual();// Son     : func2 100// Son     : func2 200// virtual func use dynamic func, use given argsf->func2virtual(300);s->func2virtual(300);// Son     : func2 300// Son     : func2 300
}
http://www.dtcms.com/wzjs/842183.html

相关文章:

  • 企业定制网站开发维护合同centos wordpress 5.5
  • 免费软件下载网站排行wordpress 二级目录404
  • 购物网站建设案件关键词的优化方法
  • wordpress博客vieu模板营销网站建设优化
  • 沈阳网站营销网站建设和管理是教什么
  • 潍坊市住房和城乡建设局网站下载高端大气网站案例
  • 上海阀门网站建设seo关键词优化软件合作
  • 郑州网站开发公wordpress 表单校验
  • 做一网站要什么时候开始postfix wordpress
  • 网站添加微信分享代码网站开发本地环境
  • 江苏做网站怎么收费门窗企业网站建设
  • 建设电影网站如何盈利厦门外贸网站建设多少钱
  • 中文网站建设做企业官网哪家公司好
  • 网站如何做熊掌号并绑定温州建网站公司哪家好
  • 素材网站会员哈尔滨短视频运营
  • 医院做网站需要多少钱校园门户网站
  • 淘宝联盟网站建设源码如何设计网站以网络为中心的企业文化
  • 北京网站建设推广服务网站备案授权书范本
  • 做网站搜索排名的公司工作怎么样哪个设计培训机构好
  • 点蜜免费空间上传网站闲鱼怎么推广自己的产品
  • 云优化网站建设做水果网站首页的图片素材
  • 自己做网站的图片杭州中小企业网站建设
  • 网站怎么做用密码网站开发需要的人员
  • 网站制作答辩ppt怎么做学生个人作品集制作
  • 专业网站建设比较好房地产销售基础知识大全
  • 东北建站短视频seo询盘系统
  • 网站搜索排名工厂办公室装修设计
  • 中为网站建设wordpress控制弹窗次数代码
  • 网站建设基础策划书好上手的做海报网站
  • 建立网站需要什么硬件南宁网站建设公司哪家好