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

好的网站建站公司江苏专业网站建设

好的网站建站公司,江苏专业网站建设,邢台123今天的招聘信息,wordpress内容类型override 是 C11 引入的一个关键字#xff0c;override 的作用是在派生类中显式地声明某个函数是用于重写基类的虚函数。它不仅仅是一个语法标记#xff0c;更重要的是提供了编译时的错误检查功能#xff0c;确保程序员确实按照预期在派生类中重写了基类的函数。如果没有正确…override 是 C11 引入的一个关键字override 的作用是在派生类中显式地声明某个函数是用于重写基类的虚函数。它不仅仅是一个语法标记更重要的是提供了编译时的错误检查功能确保程序员确实按照预期在派生类中重写了基类的函数。如果没有正确地重写函数如参数类型不匹配编译器会抛出错误。 使用场景 当你在派生类中希望重写基类的虚函数时通常在函数声明后加上 override 关键字。这可以确保 基类中的函数是虚函数。派生类中的函数正确地重写了基类中的函数函数签名要完全一致。 用法示例 假设有一个基类 Base其中定义了一个虚函数 virtual void func()。 class Base { public:virtual void func() {std::cout Base function std::endl;} };如果要在派生类 Derived 中重写该虚函数可以使用 override 关键字 class Derived : public Base { public:void func() override {std::cout Derived function std::endl;} };在这个例子中Derived 类的 func 函数明确标记为重写了 Base 类的 func 函数。如果派生类中的函数签名与基类不匹配编译器会报错。例如 class Derived : public Base { public:void func(int x) override { // 错误签名与基类不匹配std::cout Derived function std::endl;} };这个错误会被及时发现因为 func(int x) 的签名与基类的 func() 不匹配编译器会指出这是不合法的重写。 关键点总结 override 用于确保虚函数的正确重写避免签名不匹配问题。它能提高代码的可读性和可维护性便于他人理解代码中的继承关系。 下面通过一个具体的代码实例展示了 override 的使用以及它在派生类中防止函数签名不匹配和提高代码可读性等方面的作用。 示例代码 #include iostream// 基类 class Animal { public:// 基类中的虚函数virtual void makeSound() const {std::cout Animal makes a sound. std::endl;}// 基类中的虚函数virtual void move(int distance) const {std::cout Animal moves distance meters. std::endl;} };// 派生类 class Dog : public Animal { public:// 正确重写基类中的 makeSound 函数void makeSound() const override {std::cout Dog barks. std::endl;}// 错误重写这里 move 函数的参数类型不匹配// void move(double distance) const override { // 如果这样写编译器会报错因为参数类型与基类不匹配// std::cout Dog runs distance meters. std::endl;// }// 正确重写基类中的 move 函数void move(int distance) const override {std::cout Dog runs distance meters. std::endl;}// 自己定义的新函数不重写基类void wagTail() const {std::cout Dog wags its tail. std::endl;} };int main() {Animal* animal new Animal();Animal* dog new Dog();// 调用基类的虚函数animal-makeSound(); // 输出: Animal makes a sound.dog-makeSound(); // 输出: Dog barks. 派生类重写的版本animal-move(10); // 输出: Animal moves 10 meters.dog-move(20); // 输出: Dog runs 20 meters. 派生类重写的版本// 直接调用派生类的非虚函数// animal-wagTail(); // 错误Animal 没有定义 wagTailstatic_castDog*(dog)-wagTail(); // 输出: Dog wags its tail.delete animal;delete dog;return 0; }代码解释 基类 Animal 基类 Animal 定义了两个虚函数 makeSound() 和 move(int distance)它们可以被派生类重写。 派生类 Dog Dog 类通过 override 关键字正确重写了基类的虚函数 makeSound() 和 move(int distance)。如果尝试使用不匹配的参数类型例如 move(double distance)编译器会报错这就是 override 提供的安全性保证。 虚函数调用 在 main() 函数中基类指针 animal 和派生类指针 dog 指向了不同的对象。当调用虚函数 makeSound() 和 move() 时dog 对象调用的是 Dog 类中重写的函数显示了狗的行为而不是基类的默认行为。 派生类自定义函数 Dog 类还定义了自己的函数 wagTail()它不是重写基类中的函数无法通过基类指针调用。 编译器报错示例 如果 Dog 类中的 move 函数定义为 void move(double distance) const override { // 错误函数签名不匹配 std::cout Dog runs distance meters. std::endl; } 编译器会报错因为基类中的 move 函数参数是 int 类型而这里的参数是 double 类型。使用 override 关键字后编译器会检查重写是否正确从而帮助程序员发现这些潜在的错误。 总结通过这个代码实例可以看到override 能确保派生类中的函数与基类虚函数签名匹配防止因疏忽引发的重写错误并且提高代码的可读性和安全性。
http://www.hkea.cn/news/14577275/

相关文章:

  • 网站开发的布局划分献县建设局网站
  • 常州网站seo公司网站虚假宣传但网站不是我做的
  • 网站访问量咋做WordPress购物个人中心
  • 成品网站 售卖连云港建设工程质量监督站网站
  • 手机模板网站模板下载工具虚拟主机 网站镜像
  • 淘客网站怎么与pidwordpress cart
  • 深圳做二维码网站设计项目设计方案模板
  • 网站建设公司客户开发手册如何查询网站的建站工具
  • asp.net 知名网站做外贸生意的网站
  • 手机怎么创网站asp.net jsp 网站
  • 绵阳高新区建设局网站怎么做网页游戏代理
  • 手机站电影山东大良网站建设
  • 上海专业网站优化排名内江建网站
  • 便宜的做网站公司网站建设虚拟空间
  • 佛山市南海区城乡建设局网站网站收录减少
  • 做网站时分类标题和分类描述网页设计版式图片
  • 如何做求职招聘网站一图读懂制作软件
  • 全国知名网站建设网站建设 内容
  • 做企业宣传片的网站拐角型布局网站
  • 惠州城市建设建筑网站汕头最新新闻消息
  • 小学学校网站东莞外贸网站设计
  • 传奇手游网站大全9377官方网站建设步骤
  • 做彩票网站是违法的吗京东网上商城电话
  • wordpress调用网站标题php做网站用什么软件
  • 东莞微信网站建设报价深圳整合营销
  • 写作网站投稿赚钱新网站如何做seo优化
  • 查询网站备案密码是什么情况dedecms5.7 财经网站
  • 网站建设详细下载京东购物网
  • 新郑市住房建设局网站做设备推广的网站
  • 眼科医院网站建设方案重庆网络推广平台