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

如何做网站上抓视频长沙网站制作培训

如何做网站上抓视频,长沙网站制作培训,wordpress 精简主题,网站的投票系统怎么做权限对继承的影响 当使用protected继承时&#xff0c;所使用的基类成员时为public会换成protected 再去看下面的protected权限 类内部是可以访问的 但是同一类的对象是不能访问的 同理 #include <iostream>using namespace std;//基类&#xff0c;父类 class Vehicle…

权限对继承的影响

当使用protected继承时,所使用的基类成员时为public会换成protected  再去看下面的protected权限 类内部是可以访问的 但是同一类的对象是不能访问的   同理

#include <iostream>using namespace std;//基类,父类
class Vehicle{//交通工具,车,抽象的概念public:string type;string contry;string color;double price;int numOfWheel;protected:int protectedData;
private:int privateData;public:void run();void stop();};//派生类, 子类
class Roadster : protected Vehicle { //跑车,也是抽象,比父类感觉上范围缩小点   子类:public 父类  (因为或默认private)public:void openTopped(){type="wefrwr";  //在这里type是protected  }void pdrifting();};
int main()
{Roadster ftype;ftype.type ="捷豹Ftype";     //这里type是protected 不能在同一类对象中访问return 0;
}

基类/派生类构造函数

Roadster(string contry,double price,int state) :Vehicle(contry,price)
#include <iostream>using namespace std;//基类,父类
class Vehicle{ //交通工具,车,抽象的概念
public:string contry;double price;Vehicle(string contry,double price){cout << "基类的构造函数被调用" << endl;this->contry =contry;this->price = price;}};//派生类,子类
class Roadster : public Vehicle{public:int stateOfTop;Roadster(string contry,double price,int state) :Vehicle(contry,price){cout << "派生类的构造函数被调用" << endl;stateOfTop =state;}};int main()
{Roadster FTYPE("法国",70,0);return 0;
}

虚函数

在C++中,virtual和override 关键字用于支持多态,尤其是在涉及继承和方法重写下的情况下

Virtual关键字

使用场景:在基类中声明虚函数

virtual void func()

目的:允许派生类重写该函数,实现多态,

class Vehicle{ //交通工具,车,抽象的概念
public:string contry;double price;Vehicle(){};Vehicle(string contry,double price){cout << "基类的构造函数被调用" << endl;this->contry =contry;this->price = price;};//基类中声明了一个虚函数virtual void run(){cout << "车跑起来了"  << endl;}};

override关键字

使用场景:在基类中重写虚函数

目的:明确指示函数意图重写基类的虚函数

class Bike : public Vehicle{public:void run() override{cout << "脚踩自行车" << endl ;}};
#include <iostream>using namespace std;//基类,父类
class Vehicle{ //交通工具,车,抽象的概念
public:string contry;double price;Vehicle(){};Vehicle(string contry,double price){cout << "基类的构造函数被调用" << endl;this->contry =contry;this->price = price;};//基类中声明了一个虚函数virtual void run(){cout << "车跑起来了"  << endl;}};//派生类,子类
class Bike : public Vehicle{public:void run() override{cout << "脚踩自行车" << endl ;}};int main()
{Bike b;b.run();return 0;
}

override仅应用于派生类中重写基类的虚函数

如果类中有虚函数,通常应该将析构函数也声明为虚的

一旦在基类中声明为虚函数,该函数在所有派生类中自动成为虚函数,无论是否使用virtual关键字

多重继承

#include <iostream>using namespace std;class classA{
public:void displayA(){cout << "Displaying ClassA"  << endl;}void testFunc(){cout << "testFunc ClassA" <<endl;}};class classB{
public:void displayB(){cout << "Displaying classB" << endl;}void testFunc(){cout << "testFunc ClassB" <<endl;}
};class Derived : public classA,public classB{
public:void display(){displayA();displayB();classA::testFunc(); //如果在两个类中有相同的函数 那么应该表明是哪一个类}};int main()
{Derived obj;obj.displayA();obj.displayB();obj.display();return 0;
}

菱形继承

中间的必须采用虚拟继承才可以

class Derived1: virtual public Base
class Derived2: virtual public Base
#include <iostream>using namespace std;class Base{
public:int data;Base(int data){this->data=data;}void pritInfo(){cout << data << endl;}};class Derived1: virtual public Base {//继承自 Base
public:Derived1(int data) : Base(data){}};
class Derived2: virtual public Base {//继承自 Base
public:Derived2(int data) : Base(data){}};class FinalDerived : public  Derived1,public Derived2{//继承自 Derived1 和 Derived2
public:FinalDerived(int data) : Base(data),Derived1(data),Derived2(data){}};int main()
{FinalDerived final(10);final.pritInfo();return 0;
}

注意:

FinalDerived(int data) : Base(data),Derived1(data),Derived2(data)

多态

RemoteCon *remoteCon =new TvRemoCon; //多态  向下兼容   
remoteCon->openUtils();
#include <iostream>using namespace std;class RemoteCon{
public:virtual void openUtils(){cout <<"遥控器的开被按下" << endl;};};class TvRemoCon : public RemoteCon{public:void openUtils() override{cout << "电视遥控器的开被按下" << endl;}};class RoundspeakerCon : public RemoteCon{public:void openUtils() override{cout << "音响遥控器的开被按下" << endl;}};class lightCon: public RemoteCon{public:void openUtils() override{cout << "灯光遥控器的开被按下" << endl;}
};void test(RemoteCon& r)
{r.openUtils();}
int main()
{RemoteCon *remoteCon =new TvRemoCon; //多态  向下兼容remoteCon->openUtils();RemoteCon *remoteCon2 =new RoundspeakerCon; //多态remoteCon2->openUtils();RemoteCon *remoteCon3 =new lightCon; //多态remoteCon3->openUtils();TvRemoCon tvRemote;test(tvRemote);return 0;
}
结果:

抽象类:

抽象类,不支持被实例化 即派生类不把所有的基类中函数重新定义 那么就会报错

抽象类 也是支持多态的

#include <iostream>using namespace std;class Teacher{public:string name;string school;string major;virtual void goInClass()=0;virtual void startTeaching() =0;virtual void afterTeaching() =0;};
class EnglishTeacher : public Teacher{public:void goInClass() override{cout << "英语老师开始进入教室" << endl;}void startTeaching() override{cout << "英语老师开始教学" << endl ;}void afterTeaching() override{}};int main()
{//Teacher t;  //抽象类,不支持被实例化 即派生类不把所有的基类中函数重新定义 那么就会报错EnglishTeacher e;e.goInClass();//抽象类 也是支持多态的Teacher *s = new EnglishTeacher();s->startTeaching();return 0;
}

接口(针对于动作和行为) 都有基类 派生类 纯虚函数 

http://www.dtcms.com/a/608366.html

相关文章:

  • wordpress 依赖环境常州网站seo
  • 男女的做那个视频网站咖啡的营销推广软文
  • 廊坊哪里做网站好自己的网站怎么接广告
  • 网站开发的职业目标山东天元集团有限公司
  • 呼和浩特建站凡客建站
  • 如何创建网站教程杭州公司注册代理中介
  • 网站制作软件下载wordpress留言板设置
  • 国内比较好的软文网站frontpage导入网站
  • 网站建设市场推广招聘中国经济网人事
  • 网站登录界面模板可以做区块链推广的网站
  • 宁波网站开发公司怎么样全国精品课程建设网站
  • 室内设计毕业设计代做网站工作服定做工厂
  • 监控安防的网站怎么做西安网络科技有限公司有哪些
  • 阿里巴巴的网站建设衡水seo网站建设优化排名
  • 怎样进网站空间服务器哈尔滨服务最好的网站优化公司
  • 游戏网站开发名字接做网站需要问什么条件
  • 哪个网站可以卖自己做的模型怎样上百度做广告
  • 校园网站集群建设网站开发工程师的工作内容
  • wordpress 搬家 sae前端seo主要优化哪些
  • 怎样把网站做的好看厦门网站排名优化费用
  • 做关于车的网站好文化建设的具体措施
  • 南京哪家做电商网站返利网app网站开发
  • 国外网站平台有哪些广西远昌建设公司
  • 做设计兼职的网站有哪些工作wordpress 集赞系统
  • 南昌网站建设行情怎样找到正规代加工网站
  • asp 网站访问统计wordpress 评论头像
  • 广州 骏域网站建设微网站设计基本要求
  • 兰州网站排名哪家公司好金泉网网站建设
  • 宁波网站推广宣传常宁网页设计
  • 用一部手机制作网站建销售网站需要多少钱