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

企业站群cms官网免费手游代理平台哪个好

企业站群cms官网免费,手游代理平台哪个好,推广赚钱吗,规划网站的思路1.虚函数#xff08;Virtual Function#xff09; 在c 中#xff0c; 虚函数是定义在基类中的函数#xff0c;但是它可以在派生类中进行重写#xff08;Override) 。 通过在基类中通过virtual 关键字声明函数 #xff0c; 你创建了一个可以在任何派生类中特别实现的接口…1.虚函数Virtual Function 在c 中 虚函数是定义在基类中的函数但是它可以在派生类中进行重写Override) 。 通过在基类中通过virtual 关键字声明函数 你创建了一个可以在任何派生类中特别实现的接口。 当你有一个指针指向基类或者引用 并通过这个指针或者引用调用虚函数时 c 运行时会根据指针或者引用 实际指向的对象来调用适当的函数。 这个过程是在运行时动态发生的 这也就是所谓的动态绑定或晚绑定 。 2.多态Polymorphism) 多态是一个通用的概念 指的是可以通过同一个接口访问不同类型对象的能力 。 在c 中 多态通常通过虚函数来实现 当你使用基类的指针或者引用调用一个虚函数时 实际上会执行派生类版本的函数 这取决于指针或者引用实际指向的对象类型 多态允许你编写通用的代码 这些代码可以与任何从基类派生的类的对象一起工作 而无需在编译时知道确切的派生类型 。 3. 例子 上面的不太好理解 举个简单的例子 有一天你到餐厅吃饭服务员给你一张菜单基类进行点菜菜单上有各种食物派生类 但你只需要看菜单就可以做出选择而不需要知道每种食物是如何准备的 在c 中多态就相当于这个菜单 它允许你使用一个**通用的接口基类的指针或引用**来执行可能有多种不同实现的操作这意味着我们在写代码的时候不必对象的确切类型 只需要知道它能干什么 。 其中虚函数就相当于菜单上的各种食物 我们可以在基类中声明virtual 并且在派生类中重新定义override 3.1 代码实现 #include iostream class Food { public: virtual void prepare(){std::cout prepare some food std::endl;} }; class noodele :public Food { public:void prepare () override {std::cout this is your noodel std::endl;} }; class water :public Food { public:void prepare() override {std::cout this is your water std::endl;} };void eat(Food* food) { //接口要是 基类的指针或者引用food-prepare(); //实现多态 } int main() {Food* myfood new water();eat(myfood); delete myfood; }4.注意 虚函数虽然非常好用 但是在使用虚函数的时候并不是所有函数都得定义成虚函数因为实现虚函数是有代价的需要注意以下几方面的 **虚析构函数**如果你的类有虚函数也应该提供一个虚析构函数为了确保通过基类指针删除派生类的对象的时候能够调用正确的析构函数内存和性能考虑 使用虚函数会增加每个对象的内存开销以此每个对象需要一个额外的指针来访问虚函数表(v-table) ,此外虚函数的调用比非虚函数慢因为需要额外的间接寻址虚函数的继承 一旦在基类中定义了虚函数它在派生类中自动成为虚函数 即便没有 virtual 关键字 5. 静态多态和动态多态 静态多态中 所有的类型检查和函数调用解析都是在编译时完成的一次静态多态不会引入运行时的开销动态多态 动态动态主要是运行时进行的 主要通过虚函数实现的 在动态多态中 函数的调用不是在编译时解析的而是在运行时当你通过基类的指针或者引用在调用一个虚函数时 c 运行时会根据对象的实际类型来确定调用那个函数 。 5.1 函数重载和模板 函数重载就是指你写了多个重名的函数但是传入的参数类型或者个数不一样编译器会根据你传入的参数类型或者参数个数来决定调用那个函数 。模板就是一种能够让你的函数或者类能够处理不同数据类型的方法 你写一次代码编译器会根据你使用的具体类型来生成多个代码版本 就比如说使用模板实现不同类型的数据交换 #include iostreamtemplate typename T void swap(T a, T b) {T temp a;a b;b temp; }int main() {int i 1, j 2;swap(i, j); // 交换两个intstd::cout i: i , j: j std::endl;double x 3.14, y 1.59;swap(x, y); // 交换两个doublestd::cout x: x , y: y std::endl;return 0; }5.2总结也就是 静态多态的类型早已知晓 多态性在编译时通过函数重载和模板实现没有运行开销 动态多态它的类型可能未知 多态性在运行时通过虚函数实现这涉及到类型识别有一定的性能开销 6. 什么函数不能声明为虚函数 普通函数 普通函数只能被overload 不能被override声明为虚函数也没有意义因此编译器会在编译时绑定函数构造函数 构造函数是为了明确初始化对象成员才产生的 然而virtual function 主要是为了再不完全了解细节的情况下也能处理对象 另外virtual function 函数是在不同类型的对象产生不同的对象 现在对象还没产生如何使用virtual 函数来完成你想完成的动作 。静态成员函数 静态成员函数是不依赖于类的实例而虚函数是要通过对象的虚表vtable)来调用主函数主函数是程序的入口点以此不会被声明为虚函数 。
http://www.yingshimen.cn/news/87631/

相关文章:

  • 做基础工程分包应上什么网站淮南网官方网站
  • 兰州市建设工程质量监督站网站在线购物网站建设流程图
  • 分类信息网站开发建设网官网住房和城乡厅官网
  • 在南海建设工程交易中心网站建设专业网站
  • 深圳建一个网站多少钱购物网站介绍
  • 中国建设业管理协会网站wordpress d
  • 湛江免费建站哪里有wordpress category name
  • 只想怎样建设自己的销售网站网站后台传图片
  • 越秀网站建设策划网站文章排版的重要性
  • 有哪些网站做任务有佣金建设银行手机网站首页
  • 网站建设合同 完整版wordpress 支持 插件下载
  • 促销直播网站开发中国十大装修公司品牌排行榜
  • 电子商务网站开发项目设计报告昆山市做网站的公司
  • 亚马逊企业网站建设wordpress访问
  • 十堰微网站建设多少钱柳州企业网站开发公司
  • wordpress 描文本优化湖南纯手工seo电话
  • 行政单位门户网站建设方案企业网络专线
  • ps如何做网站轮播图网上购物系统建设
  • 网站被黑应该怎么做励志网站织梦源码
  • 企业网站强制备案自设计网站
  • 通州网站建设公司阿里巴巴免费做国际网站
  • 网站建设升级的必要性最低价做网站
  • 投票网站怎么做江门网站建设哪家快
  • 2个域名指向同一个网站网站不支持m.域名
  • 高端网站建设页面wordpress付费开通站点
  • 珠海网站建设黄荣wordpress生成
  • 网站开发一个支付功能要好多钱网站建设步骤实践报告
  • 网站更换备案昆山正规网站建设
  • 网站建设邀标函搭建wap网站
  • 单页营销网站怎么做黄骅港赶海免费最佳地点是哪里