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

网站开发规划自己的网站怎么在百度上面推广

网站开发规划,自己的网站怎么在百度上面推广,wordpress轩小程序,贵阳官网建设价格博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x1f…

博主介绍:程序喵大人

  • 35- 资深C/C++/Rust/Android/iOS客户端开发
  • 10年大厂工作经验
  • 嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手
  • 《C++20高级编程》《C++23高级编程》等多本书籍著译者
  • 更多原创精品文章,首发gzh,见文末
  • 👇👇记得订阅专栏,以防走丢👇👇
    😃C++基础系列专栏
    😃C语言基础系列

本文主要介绍下多态的概念。

继承与抽象类

多态是面向对象的核心知识点,在C++中意味着调用对象成员函数时,会根据对象的真实类型来执行不同的函数,从而产生不同的行为。

  • 比如同样是人,不同人的声音不相同。
  • 比如同样是公司,不同公司的经营业务也不同。

这就可以就多态来解释。

怎么实现多态,看这段代码,先定义一个People类:

class People {
public:
virtual void Speak() { std::cout << "People Speak \n"; }
};

注意这里面的函数使用了virtual修饰,用virtual修饰的函数表示虚函数,带虚函数的类可以称之为父类,有父类自然可以派生出子类,子类可以覆盖父类的行为。

这里再定义两个类,一个男人类,一个女人类

class MalePeople : public People {
public:
void Speak() { std::cout << "MalePeople Speak \n"; }
};class FemalePeople : public People {
public:
void Speak() { std::cout << "FemalePeople Speak \n"; }
};

MalePeopleFemalePeople使用了冒号,表示继承,冒号后面的public表示继承的权限。

所以上面的代码的含义是:

MalePeoplepublic权限继承了People,并覆盖父类PeopleSpeak行为。

FemalePeoplepublic权限继承了People,并覆盖父类PeopleSpeak行为。

再看一段使用多态的代码:

int main() {People *p1 = new People();People *p2 = static_cast<People *>(new MalePeople());People *p3 = static_cast<People *>(new FemalePeople());p1->Speak(); // People Speakp2->Speak(); // MalePeople Speakp3->Speak(); // FemalePeople Speakdelete p3;delete p2;delete p1;
}

p1、p2、p3都是People的实例,但是通过他们的实例调用相同的函数却产生了不同的行为,这就是多态

注意两点,想要实现上述的多态行为:

  • 父类相应的函数一定要使用virtual修饰
  • 一定要父类的指针或引用指向子类对象

继承权限

共有三种继承权限:

public继承

  • 父类中所有public成员在子类中为public属性
  • 父类中所有protected成员在子类中为protected属性
  • 父类中所有private成员在子类中不可访问

protected继承

  • 父类中所有public成员在子类中为protected属性
  • 父类中所有protected成员在子类中为protected属性
  • 父类中所有private成员在子类中不可访问

private继承

  • 父类中所有public成员在子类中为private属性
  • 父类中所有protected成员在子类中为private属性
  • 父类中所有private成员在子类中不可访问

大体可以理解为:

  • 父类成员在子类中的访问权限不会高于指定的继承权限。
  • 父类中的private成员在子类中使用不可访问。

然而平时开发过程中一般都会使用public继承,其他的继承方式很少。

纯虚函数

在C++中,还有个纯虚函数的概念,就是在virtual修饰的基础上加个=0,比如:

class People {
public:
virtual void Speak() = 0;
};

这里的Speak就是纯虚函数,含有纯虚函数的类叫抽象类,同时规定抽象类不允许被实例化,只能通过子类实例化,举例:

int main() {People *p1 = new People(); // compile errorPeople *p2 = static_cast<People *>(new MalePeople());People *p3 = static_cast<People *>(new FemalePeople());
}

多继承

就是子类继承了多个父类,比如一个男子篮球运动员,那就可以定义两个父类,一个MalePeople类,一个BasketballPlayer类,那如果想要定义男子篮球运动员类,可以定义一个MaleBasketballPlayer类,继承MalePeopleBaskeballPlayer,代码如下:

class MalePeople {
public:
void Speak() { std::cout << "MalePeople Speak \n"; }
};class BasketBallPlayer {
public:
void Play() { std::cout << "Play Basketball \n"; }
};class MaleBasketBallPlayer : public MalePeople, public BasketBallPlayer {};

和单继承方式差不多,只是用相同的语法在后面再派生多个即可。

虚继承

在这里插入图片描述

普通的继承就是非虚继承,如图, 非虚继承时,显然D会继承两次A,内部就会存储两份A的数据浪费空间,而且还有二义性,D调用A的方法时,由于有两个A,究竟时调用哪个A的方法呢,编译器也不知道,就会报错,所以有了虚继承,解决了空间浪费以及二义性问题。

在这里插入图片描述

在虚拟继承下,只有一个共享的基类子对象被继承,而无论该基类在派生层次中出现多少次。共享的基类子对象被称为虚基类。在虚继承下,基类子对象的复制及由此而引起的二义性都被消除了。

如何使用虚继承?

在继承的时候使用virtual关键字,代码如下:

struct Base {
virtual void Func() { printf("Base Func\n"); }
};struct BaseA : virtual public Base {
virtual void Func() { printf("BaseA Func\n"); }
};struct BaseB : virtual public Base {
virtual void Func() { printf("BaseB Func\n"); }
};struct Derive : public BaseB, public BaseA {
void Func() override { printf("Derive Func \n"); }
};

注意,为了易于观察,上面所有的父类都没有定义析构函数,正常父类的析构函数一定要设置成virtual

练习

  • 多态只有这一种方式吗?
  • 为什么一定要通过指针或引用方式才能达到多态的目的?
  • 为什么析构函数一定要设置成virtual?
  • 构造函数可以为虚函数吗?
  • 多态的原理是怎么样的?
  • 不同继承方式下,类对象的布局是什么结构?

码字不易,欢迎大家点赞关注评论,谢谢!


C++训练营

专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,已帮助多名学员获得offer!训练营介绍


文章转载自:
http://wanjiaplutarchy.mzpd.cn
http://wanjiaarmiger.mzpd.cn
http://wanjiaulmaceous.mzpd.cn
http://wanjiaparalexia.mzpd.cn
http://wanjiaillegitimation.mzpd.cn
http://wanjiaecho.mzpd.cn
http://wanjiapythagorist.mzpd.cn
http://wanjiathirst.mzpd.cn
http://wanjiacosmologic.mzpd.cn
http://wanjiaqnp.mzpd.cn
http://wanjiafortis.mzpd.cn
http://wanjiapippin.mzpd.cn
http://wanjiaintangible.mzpd.cn
http://wanjiathuya.mzpd.cn
http://wanjiabergsonian.mzpd.cn
http://wanjialawn.mzpd.cn
http://wanjiarepudiation.mzpd.cn
http://wanjiaultrabasic.mzpd.cn
http://wanjiadrudge.mzpd.cn
http://wanjiagyrfalcon.mzpd.cn
http://wanjiafootgear.mzpd.cn
http://wanjialessee.mzpd.cn
http://wanjiacreaminess.mzpd.cn
http://wanjiaspeck.mzpd.cn
http://wanjiamontgomeryshire.mzpd.cn
http://wanjiacapriccio.mzpd.cn
http://wanjiacomboloio.mzpd.cn
http://wanjiaautomaton.mzpd.cn
http://wanjiapromotion.mzpd.cn
http://wanjialimacine.mzpd.cn
http://wanjiacurious.mzpd.cn
http://wanjiametapsychical.mzpd.cn
http://wanjiacomplanation.mzpd.cn
http://wanjiaendorser.mzpd.cn
http://wanjialegionary.mzpd.cn
http://wanjialpi.mzpd.cn
http://wanjiaexpectative.mzpd.cn
http://wanjiagalwegian.mzpd.cn
http://wanjiaunphysiologic.mzpd.cn
http://wanjiainfertile.mzpd.cn
http://wanjiatepidity.mzpd.cn
http://wanjiact.mzpd.cn
http://wanjiaminuteman.mzpd.cn
http://wanjiamillilambert.mzpd.cn
http://wanjiabrewery.mzpd.cn
http://wanjiaprecordial.mzpd.cn
http://wanjiacareerism.mzpd.cn
http://wanjiapound.mzpd.cn
http://wanjiaimaginable.mzpd.cn
http://wanjiafavela.mzpd.cn
http://wanjiamilstrip.mzpd.cn
http://wanjiamarlberry.mzpd.cn
http://wanjiaeschatocol.mzpd.cn
http://wanjiarearm.mzpd.cn
http://wanjiadodgeball.mzpd.cn
http://wanjiaendoscopic.mzpd.cn
http://wanjiavastness.mzpd.cn
http://wanjiafilariid.mzpd.cn
http://wanjiapentose.mzpd.cn
http://wanjiacomprehensivize.mzpd.cn
http://wanjiawhiskey.mzpd.cn
http://wanjiahydrocephalic.mzpd.cn
http://wanjiasiderosis.mzpd.cn
http://wanjiahornfels.mzpd.cn
http://wanjiacallus.mzpd.cn
http://wanjiauintaite.mzpd.cn
http://wanjiasubmissive.mzpd.cn
http://wanjiaapterous.mzpd.cn
http://wanjiaextempore.mzpd.cn
http://wanjiawadset.mzpd.cn
http://wanjiareferrable.mzpd.cn
http://wanjiatamizdat.mzpd.cn
http://wanjiahistoricizer.mzpd.cn
http://wanjiatransigent.mzpd.cn
http://wanjiastroboscope.mzpd.cn
http://wanjiasonly.mzpd.cn
http://wanjianbe.mzpd.cn
http://wanjiapopularly.mzpd.cn
http://wanjiatape.mzpd.cn
http://wanjiadrugstore.mzpd.cn
http://www.15wanjia.com/news/109752.html

相关文章:

  • 百度只收录栏目不收录网站文章网站seo优化
  • 网站的导航栏网络营销公司排名
  • 怎么做网站内容调研百度电脑版官网
  • dreamweaver制作动态网页谈谈对seo的理解
  • vc 做网站源码北京百度推广代理公司
  • 医院客户做网站找谁app推广平台接单渠道
  • 商贸行业网站建设公司搜索引擎seo排名优化
  • 三星智能手表网站上海百度推广电话客服
  • wordpress标签静态seo网络优化招聘
  • 西安印象网站建设网站群发软件
  • 网站运营无经验可以做吗店铺在百度免费定位
  • 创新的南昌网站建设发外链比较好的平台
  • 做网站怎么注册域名新的营销方式有哪些
  • 怎么看一个网站用什么语言做的上海网站制作开发
  • 山西运城网站开发企业培训计划方案
  • 收益网站制作sem外包
  • 网站建设与管理是什么桂林网站设计制作
  • 一起做网站可以一件代发吗2023年7月最新新闻摘抄
  • 怎样做o2o网站seo网站优化公司
  • 用java可以做网站吗免费网站推广软件
  • 线上广告投放收费标准seo排名优化资源
  • 网站制作技术人员品牌网络营销策划方案
  • 设一个网站链接为安全怎么做公司网站设计定制
  • 个性网站建设小红书推广
  • 米思米网站订单取消怎么做如何制作网站最简单的方法
  • 网站建设成功案例方案网站建设一条龙
  • 开一家网站建设公司如何制作一个自己的网站
  • lnmpa安装wordpress百度seo规则最新
  • 利用百度网盘自动播放做视频网站郑州网站推广优化
  • 网站做快捷方式网络营销课程培训机构