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

php网站开发教材如何网络营销自己的产品

php网站开发教材,如何网络营销自己的产品,南宁轨道交通app下载,孝感织云网站建设📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、多态的概念1、概念 二、多态的定义及实现1、多态的构成条件2、虚函数3、虚函数的重写4、C…

在这里插入图片描述


📘北尘_:个人主页

🌎个人专栏:《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》

☀️走在路上,不忘来时的初心

文章目录

  • 一、多态的概念
    • 1、概念
  • 二、多态的定义及实现
    • 1、多态的构成条件
    • 2、虚函数
    • 3、虚函数的重写
    • 4、C++11 override 和 final
    • 5、重载、覆盖(重写)、隐藏(重定义)的对比
    • 6、不能构成多态的例子
  • 三、抽象类
    • 1、概念
    • 2、接口继承和实现继承


一、多态的概念

1、概念

多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。

在这里插入图片描述
在这里插入图片描述
举个栗子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时是优先买票。
再举个栗子: 最近为了争夺在线支付市场,支付宝年底经常会做诱人的扫红包-支付-给奖励金的活动。那么大家想想为什么有人扫的红包又大又新鲜8块、10块…,而有人扫的红包都是1毛,5毛…。其实这背后也是一个多态行为。支付宝首先会分析你的账户数据,比如你是新用户、比如
你没有经常支付宝支付等等,那么你需要被鼓励使用支付宝,那么就你扫码金额 =
random()%99;比如你经常使用支付宝支付或者支付宝账户中常年没钱,那么就不需要太鼓励你去使用支付宝,那么就你扫码金额 = random()%1;总结一下:同样是扫码动作,不同的用户扫得到的不一样的红包,这也是一种多态行为。ps:支付宝红包问题纯属瞎编,大家仅供娱乐。

二、多态的定义及实现

1、多态的构成条件

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。

那么在继承中要构成多态还有两个条件

  1. 必须通过基类(父类)的指针或者引用调用虚函数
  2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写(重写条件:函数名/参数/返回值相同 协变例外)

在这里插入图片描述

2、虚函数

虚函数:即被virtual修饰的类成员函数称为虚函数。

class Person {
public:virtual void BuyTicket() { cout << "买票-全价" << endl;}
};

3、虚函数的重写

虚函数的重写(覆盖):派生类中有一个跟基类完全相同的虚函数(即派生类虚函数与基类虚函数的返回值类型、函数名字、参数列表完全相同),称子类的虚函数重写了基类的虚函数。

class Person
{
public:virtual void Buyticket(){cout << "票价--全价" << endl;}
};class Student : public Person
{
public:virtual void Buyticket(){cout << "票价--半价" << endl;}/*注意:在重写基类虚函数时,派生类的虚函数在不加virtual关键字时,虽然也可以构成重写(因为继承后基类的虚函数被继承下来了在派生类依旧保持虚函数属性),但是该种写法不是很规范,不建议这样使用*//*void BuyTicket() { cout << "买票-半价" << endl; }*/
};
void func(Person& p)
{p.Buyticket();
}
int main()
{Person p;Student s;func(p);func(s);return 0;
}

虚函数重写的两个例外:

派生类重写基类虚函数时,与基类虚函数返回值类型不同。即基类虚函数返回基类对象的指针或者引用,派生类虚函数返回派生类对象的指针或者引用时,称为协变。(了解)

class A{};
class B : public A {};
class Person {
public:virtual A* f() {return new A;}
};
class Student : public Person {
public:virtual B* f() {return new B;}
};

析构函数的重写(基类与派生类析构函数的名字不同)

如果基类的析构函数为虚函数,此时派生类析构函数只要定义,无论是否加virtual关键字,都与基类的析构函数构成重写,虽然基类与派生类析构函数名字不同。虽然函数名不相同,看起来违背了重写的规则,其实不然,这里可以理解为编译器对析构函数的名称做了特殊处理,编译后析构函数的名称统一处理成destructor。

class Person {
public:virtual ~Person() {cout << "~Person()" << endl;}
};
class Student : public Person {
public:virtual ~Student() { cout << "~Student()" << endl; }
};
// 只有派生类Student的析构函数重写了Person的析构函数,下面的delete对象调用析构函
数,才能构成多态,才能保证p1和p2指向的对象正确的调用析构函数。
int main()
{Person* p1 = new Person;Person* p2 = new Student;delete p1;delete p2;return 0;
}

4、C++11 override 和 final

从上面可以看出,C++对函数重写的要求比较严格,但是有些情况下由于疏忽,可能会导致函数名字母次序写反而无法构成重载,而这种错误在编译期间是不会报出的,只有在程序运行时没有得到预期结果才来debug会得不偿失,因此:C++11提供了override和final两个关键字,可以帮助用户检测是否重写。

  1. final:修饰虚函数,表示该虚函数不能再被重写
    在这里插入图片描述
  2. override: 检查派生类虚函数是否重写了基类某个虚函数,如果没有重写编译报错。

在这里插入图片描述

5、重载、覆盖(重写)、隐藏(重定义)的对比

在这里插入图片描述
在这里插入图片描述

6、不能构成多态的例子

1、案例一

在这里插入图片描述

2、案例二

在这里插入图片描述


三、抽象类

1、概念

在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。

虽然无法实例化对象,但是可以使用指针。

在这里插入图片描述
在这里插入图片描述


2、接口继承和实现继承

普通函数的继承是一种实现继承,派生类继承了基类函数,可以使用函数,继承的是函数的实现。虚函数的继承是一种接口继承,派生类继承的是基类虚函数的接口,目的是为了重写,达成多态,继承的是接口。所以如果不实现多态,不要把函数定义成虚函数。


http://www.shuangfujiaoyu.com/news/19901.html

相关文章:

  • 区域销售网站什么做百度的网页地址
  • b2c电子商务模式指的是日照网站优化公司
  • 付运费送东西的网站怎么做百度推广官网登录
  • php做网站商城系统怎么样内江seo
  • 网站设计大概多少钱营销策略ppt
  • 5118站长平台网站快速排名优化价格
  • 建设网站建设安全培训平台seo营销推广服务公司
  • 网页设计与网站建设考试seo百度站长工具查询
  • 公司网站怎么做备案信息国内seo公司
  • 网站建设的收费百度推广关键词
  • 黄酒的电商网页设计网站深圳市seo点击排名软件价格
  • wordpress版本可以恢复旧版本东莞网络优化哪家好
  • 公司建设一个网站有什么好处百度搜索引擎的网址
  • 中国网站制作企业排行榜金华seo全网营销
  • 如何做公司o2o网站专业网络推广软件
  • 旅游网站建设目标搜索引擎优化网站的网址
  • 广东公司响应式网站建设设计宁波谷歌seo推广公司
  • 武汉做营销型网站建设抚顺网络推广
  • 盘锦做网站友情链接买卖代理
  • 苏州正规网站建设概况百度网页版登录
  • web制作重庆网站seo多少钱
  • 网站优化seo推广服务百度seo公司哪家最好
  • 商业网站用什么语言做海外推广代理公司
  • php创建一个网站东营百度推广公司
  • 沈阳建设公司网站网络营销期末考试试题及答案
  • 最超值的郑州网站建设常用的网络推广手段有哪些
  • 陕西企业电脑网站制作b站推广网站入口mmm
  • 凡客做网站seo职业技能培训班
  • 学校网站平台建设市场营销策划方案
  • 技术支持骏域建设网站网络推广公司