电商设计软件百度推广优化技巧

张小明 2026/1/16 5:12:42
电商设计软件,百度推广优化技巧,中国建设银行重庆网站首页,中国银行网站建设C虚函数 作为C程序员#xff0c;“多态”绝对是绕不开的核心知识点#xff0c;而撑起多态的关键技术#xff0c;正是今天要聊的虚函数。 一、先搞懂#xff1a;虚函数到底是啥#xff1f; 一句话概括#xff1a;基类中加了virtual关键字的成员函数#xff0c;就是虚函…C虚函数作为C程序员“多态”绝对是绕不开的核心知识点而撑起多态的关键技术正是今天要聊的虚函数。一、先搞懂虚函数到底是啥一句话概括基类中加了virtual关键字的成员函数就是虚函数。它的核心“魔法”的是当用基类指针指向子类对象时调用这个函数会自动执行子类的版本而不是基类的举个生活中的例子基类就像“动物”有个“叫”的行为子类是“狗”“猫”继承了“动物”但“叫”的方式不一样狗汪汪、猫喵喵没有虚函数时用“动物指针”指向“狗”调用“叫”会输出“动物叫”认指针类型有了虚函数后同样的指针指向“狗”会输出“汪汪叫”认对象真实身份。这就是虚函数的核心价值——让指针“认清”对象的真实面目实现多态二、3步实现虚函数多态光说不练假把式咱们用代码一步步实现上面的“动物叫”例子一看就懂第一步定义基类给函数加virtual先创建“动物”基类把“叫”函数设为虚函数加virtual关键字#includeiostreamusingnamespacestd;// 基类动物classAnimal{public:// 虚函数动物叫virtualvoidmakeSound(){cout动物发出叫声endl;}};第二步定义子类重写虚函数创建“狗”和“猫”两个子类继承Animal并重写makeSound函数。这里可以加override关键字可选但强烈推荐明确表示“我在重写基类的虚函数”避免写错参数/返回值// 子类狗继承动物classDog:publicAnimal{public:// 重写虚函数加override更规范voidmakeSound()override{cout汪汪汪小狗在叫endl;}};// 子类猫继承动物classCat:publicAnimal{public:voidmakeSound()override{cout喵喵喵小猫在叫endl;}};第三步测试多态效果用基类指针指向不同的子类对象调用makeSound看看会不会自动匹配对应版本intmain(){// 基类指针Animal*animalPtr;// 指向狗对象Dog dog;animalPtrdog;animalPtr-makeSound();// 输出汪汪汪小狗在叫// 指向猫对象Cat cat;animalPtrcat;animalPtr-makeSound();// 输出喵喵喵小猫在叫return0;}运行结果完全符合预期同一个基类指针指向不同子类对象时自动调用子类的函数——这就是虚函数实现的多态是不是很简单三、必记避坑点3个关键规则学会用法还不够这3个坑一定要避开否则容易出bug或内存泄漏1. 析构函数必须设为虚函数如果基类指针指向子类对象删除指针时如果析构函数不是虚函数会只调用基类的析构函数子类的资源释放不掉导致内存泄漏正确做法基类析构函数加virtualclassAnimal{public:virtualvoidmakeSound(){...}// 虚析构函数virtual~Animal(){cout动物基类析构endl;}};classDog:publicAnimal{public:voidmakeSound()override{...}~Dog()override{cout小狗子类析构endl;}};// 测试删除基类指针指向的子类对象Animal*ptrnewDog();deleteptr;// 会先调用Dog析构再调用Animal析构无内存泄漏2. 这两个函数不能是虚函数构造函数对象还没创建完成虚函数表还没初始化无法实现虚函数效果静态函数静态函数属于类不属于对象而虚函数依赖对象的真实类型冲突。3. 用override明确重写避免笔误重写时如果参数类型、个数、返回值写错比如把void makeSound()写成void makeSound(int)编译器不会报错而是当成新函数——加了override后编译器会检查是否真的重写了基类虚函数有错直接提示四、一句话总结虚函数的核心就是用virtual关键字标记基类函数让子类能重写最终实现“基类指针指向子类对象时调用子类函数”的多态效果。掌握虚函数你就打通了C多态的“任督二脉”后续学习继承、接口设计等知识点都会更轻松
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

海外访问国内网站 dns企业宣传海报设计制作

文章介绍了AI智能体的概念、组成、工作原理及学习路径。AI Agent是赋予大模型"手脚"和"感官"的系统,使其从内容生成者转变为任务执行者。它由大脑(LLM)、规划、记忆和工具四部分组成,通过ReAct过程实现思考-行动-观察的循环。初学者…

张小明 2026/1/7 20:09:11 网站建设

可信网站身份认证宁波外贸公司黄页

Conda激活TensorFlow开发环境的工程实践 在深度学习项目中,一个常见的场景是:团队成员各自搭建环境后,代码在某台机器上运行正常,换到另一台却报错——“模块未找到”、“版本不兼容”、“CUDA初始化失败”。这类问题看似琐碎&…

张小明 2026/1/8 13:40:25 网站建设

制作网站品牌公司哪家好php网站源码模板

2025年西北工业大学计算机考研复试机试真题 2025年西北工业大学计算机考研复试上机真题 历年西北工业大学计算机考研复试上机真题 历年西北工业大学计算机考研复试机试真题 更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream N 诺 DreamJudg…

张小明 2026/1/9 21:41:47 网站建设

天马网络 网站建设网站建设控制

Bodymovin插件实战攻略:轻松将AE动画变身高性能网页特效 ✨ 【免费下载链接】bodymovin-extension Bodymovin UI extension panel 项目地址: https://gitcode.com/gh_mirrors/bod/bodymovin-extension 还在为如何将精心设计的After Effects动画完美呈现在网页…

张小明 2026/1/7 20:09:17 网站建设

大同市建设局网站手机网站编辑

PythonSelenium4 Web自动化测试框架是一个强大的工具,它可以帮助开发者自动化测试Web应用程序。Selenium是一个开源的自动化测试工具,它可以模拟用户在浏览器中的行为。 实现 安装库: pip install selenium 打开浏览器 driver webdriver…

张小明 2026/1/8 8:14:44 网站建设

网站的登录注册怎么做凡科互联网科技股份有限公司

一、等保2级与3级的核心内容与区别 等保2.0(《信息安全技术 网络安全等级保护基本要求》GB/T 22239-2019)将信息系统分为1-5级,**2级(指导保护级)和3级(监督保护级)**是最常见的两类&#xff0c…

张小明 2026/1/12 7:11:30 网站建设