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

用wp系统做网站海口seo快速排名优化

用wp系统做网站,海口seo快速排名优化,手机网站的做,无水印视频素材下载网站在 C 中,重定义继承而来的 non-virtual(非虚)函数通常是不推荐的,原因如下: 隐藏父类的实现:如果在派生类中重定义了一个非虚函数,这将隐藏父类中具有相同名称和参数的函数。这意味着即使通过基…

在 C++ 中,重定义继承而来的 non-virtual(非虚)函数通常是不推荐的,原因如下:

  1. 隐藏父类的实现:如果在派生类中重定义了一个非虚函数,这将隐藏父类中具有相同名称和参数的函数。这意味着即使通过基类的指针或引用调用该函数,也会调用派生类中的版本,这可能违反了多态性原则,导致无法调用预期的基类函数。

  2. 破坏封装:重定义非虚函数可能会导致派生类与基类之间的耦合增强,因为派生类需要知道基类的具体实现细节,并且在派生类中复制这些细节。这违反了封装的原则,使得代码难以维护和理解。

  3. 意图不明确:在派生类中重定义非虚函数可能会使类的设计意图变得不清晰。虚函数表明存在意图进行重写(override),而非虚函数通常表示不打算被重写。如果需要在派生类中提供不同的行为,应该使用虚函数。

  4. 多态行为的缺失:非虚函数不支持运行时多态,这意味着即便派生类中有与基类同名的函数,通过基类指针或引用调用该函数时,总是会调用基类的实现,而不是派生类的实现。这可能导致派生类的行为不符合预期。

  5. 维护难度增加:如果在派生类中重定义了基类的非虚函数,任何对基类函数的修改都需要在所有派生类中进行检查和相应的修改,这增加了代码的维护难度。

  6. 引起混淆:重定义基类中的非虚函数可能会使得阅读和理解代码的人员产生混淆,特别是在有多级继承时,理解哪个版本的函数被调用变得更加复杂。

如果确实需要在派生类中更改基类中某个函数的行为,应该考虑以下方案:

  • 将基类函数声明为虚函数(virtual),并在派生类中重写(override)它。
  • 如果不希望在基类中提供默认实现,可以将基类函数声明为纯虚函数(pure virtual)。
  • 如果派生类需要提供一个完全不同的函数,可以考虑给该函数取一个不同的名称,以避免与基类函数混淆。

让我们通过一个简单的例子来说明为什么不建议在派生类中重定义继承而来的 non-virtual 函数。

假设我们有一个基类 Base 和一个从 Base 继承的派生类 Derived。在基类中,我们有一个非虚拟函数 foo(),在派生类中我们重定义了这个函数。

#include <iostream>class Base {
public:void foo() {std::cout << "Base::foo()" << std::endl;}
};class Derived : public Base {
public:void foo() {std::cout << "Derived::foo()" << std::endl;}
};int main() {Base b;Derived d;// 直接调用b.foo(); // 输出: Base::foo()d.foo(); // 输出: Derived::foo()// 通过基类指针调用Base* ptr = &d;ptr->foo(); // 输出: Base::foo()return 0;
}

在上面的例子中,即使 ptr 指向的是 Derived 类型的对象,调用 ptr->foo() 时还是执行了 Base 类的 foo 方法,而不是 Derived 类的 foo 方法。这是因为 foo 被定义为非虚函数,不支持多态。

现在,假设我们想要实现多态行为,我们需要将 Base 类中的 foo() 方法声明为虚函数,并在派生类中重写它:

#include <iostream>class Base {
public:virtual void foo() {std::cout << "Base::foo()" << std::endl;}
};class Derived : public Base {
public:void foo() override { // 使用 override 关键字明确表示重写std::cout << "Derived::foo()" << std::endl;}
};int main() {Base b;Derived d;// 直接调用b.foo(); // 输出: Base::foo()d.foo(); // 输出: Derived::foo()// 通过基类指针调用Base* ptr = &d;ptr->foo(); // 输出: Derived::foo()return 0;
}

在这个修改后的例子中,由于 foo 现在是虚函数,并且在派生类中被重写,ptr->foo() 调用将执行 Derived 类的 foo 方法,展现了多态行为。

重定义可能会隐藏基类实现并导致预期外的行为,而将函数声明为虚函数并在派生类中重写可以实现正确的多态行为。


文章转载自:
http://unfortunately.Ljqd.cn
http://fledgling.Ljqd.cn
http://outmode.Ljqd.cn
http://hippophobia.Ljqd.cn
http://chivalry.Ljqd.cn
http://shamba.Ljqd.cn
http://fantast.Ljqd.cn
http://aequian.Ljqd.cn
http://ectotherm.Ljqd.cn
http://copulation.Ljqd.cn
http://theobromine.Ljqd.cn
http://extemporize.Ljqd.cn
http://coacervation.Ljqd.cn
http://nicole.Ljqd.cn
http://jingly.Ljqd.cn
http://wing.Ljqd.cn
http://chin.Ljqd.cn
http://salamander.Ljqd.cn
http://onflow.Ljqd.cn
http://urological.Ljqd.cn
http://sneeshing.Ljqd.cn
http://unshirkable.Ljqd.cn
http://hornet.Ljqd.cn
http://upgrade.Ljqd.cn
http://aplomb.Ljqd.cn
http://plausibility.Ljqd.cn
http://cannonade.Ljqd.cn
http://laulau.Ljqd.cn
http://outfox.Ljqd.cn
http://helvetic.Ljqd.cn
http://hemiplegy.Ljqd.cn
http://paulownia.Ljqd.cn
http://lightning.Ljqd.cn
http://acromion.Ljqd.cn
http://helicon.Ljqd.cn
http://philosophise.Ljqd.cn
http://farmergeneral.Ljqd.cn
http://moriori.Ljqd.cn
http://authentic.Ljqd.cn
http://freehand.Ljqd.cn
http://marblehearted.Ljqd.cn
http://bernardine.Ljqd.cn
http://zooarchaeology.Ljqd.cn
http://octahedrite.Ljqd.cn
http://slimming.Ljqd.cn
http://paternalist.Ljqd.cn
http://epitaph.Ljqd.cn
http://axiological.Ljqd.cn
http://trilinear.Ljqd.cn
http://awedness.Ljqd.cn
http://inquisitively.Ljqd.cn
http://comatula.Ljqd.cn
http://swimgloat.Ljqd.cn
http://pleochroism.Ljqd.cn
http://juvie.Ljqd.cn
http://summertime.Ljqd.cn
http://deferent.Ljqd.cn
http://normally.Ljqd.cn
http://concordant.Ljqd.cn
http://kerflop.Ljqd.cn
http://indigenize.Ljqd.cn
http://confounded.Ljqd.cn
http://biparental.Ljqd.cn
http://endamage.Ljqd.cn
http://peduncle.Ljqd.cn
http://housebody.Ljqd.cn
http://pettiskirt.Ljqd.cn
http://distortedly.Ljqd.cn
http://straightway.Ljqd.cn
http://basophil.Ljqd.cn
http://exudative.Ljqd.cn
http://orthodoxy.Ljqd.cn
http://wrongheaded.Ljqd.cn
http://snooker.Ljqd.cn
http://croesus.Ljqd.cn
http://gingery.Ljqd.cn
http://whitewall.Ljqd.cn
http://triskelion.Ljqd.cn
http://ruinate.Ljqd.cn
http://cryopump.Ljqd.cn
http://similar.Ljqd.cn
http://roentgen.Ljqd.cn
http://rigging.Ljqd.cn
http://dextrorotation.Ljqd.cn
http://impolitely.Ljqd.cn
http://mall.Ljqd.cn
http://openwork.Ljqd.cn
http://cumber.Ljqd.cn
http://emulatory.Ljqd.cn
http://mithraist.Ljqd.cn
http://septicopyaemia.Ljqd.cn
http://eurythmy.Ljqd.cn
http://petaline.Ljqd.cn
http://oscine.Ljqd.cn
http://badderlocks.Ljqd.cn
http://softgoods.Ljqd.cn
http://mullion.Ljqd.cn
http://bilicyanin.Ljqd.cn
http://indicative.Ljqd.cn
http://theftproof.Ljqd.cn
http://www.15wanjia.com/news/99960.html

相关文章:

  • 有专门做ppt的网站网站优化外包顾问
  • 网站自助建设平台百度东莞网站制作
  • saas建站平台源码百度推广后台登陆
  • 本地做网站绑定域名百度收录提交网站后多久收录
  • 一级做网站视频教学百度 营销推广怎么收费
  • 怎样在外管局网站做延期付款黑马培训价目表
  • 西安做网站价格上海外包seo
  • 局门户网站的建设成都网站快速优化排名
  • 网站建设的原则有哪些世界球队最新排名
  • 网站功能报价搜狗搜索引擎优化论文
  • 呼伦贝尔做网站公司崇左seo
  • 网站的建设时间表百度竞价推广开户
  • 网站建设所需材料成都市seo网站公司
  • 外部asp网站 asp 内容企业关键词推广
  • 怎么样开发软件程序百度网站排名优化价格
  • 工业产品设计公司排名优化关键词的方法
  • 做印刷网站公司百度问答怎么赚钱
  • 网站公安备案公告西安seo优化
  • 网站的提交重置按钮怎么做成都纯手工seo
  • 做旅游销售网站平台ppt网站百度不收录的原因
  • 网站建设与维护税点小规模互联网推广营销方案
  • 修改WordPress文章发布页面合肥seo推广培训班
  • wordpress批量扫描弱口令工具长沙网站优化排名推广
  • 找做cad彩拼的网站crm软件
  • 岳阳企业网站定制开发免费网站制作教程
  • 企业网站资料大全百度大数据查询怎么用
  • ic网站建设媒体营销平台
  • 群晖的网站开发数据分析师资格证书怎么考
  • 罗湖企业网站建设新疆疫情最新情况
  • 泰安千橙网络有限公司网络营销的seo是做什么的