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

企业需求做网站在哪儿交易对网站开发语言的统计

企业需求做网站在哪儿交易,对网站开发语言的统计,建设银行手机短信网站怎么开通,建工信息网继承 1.继承1.1 继承的概念1.2继承的定义1.2.1定义格式1.2.2继承基类成员访问方式的变化 1.3继承模板 2.基类和派生类之间的转换 1.继承 1.1 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许我们在保持原有类特性的基础上…

继承

  • 1.继承
    • 1.1 继承的概念
    • 1.2继承的定义
      • 1.2.1定义格式
      • 1.2.2继承基类成员访问方式的变化
    • 1.3继承模板
  • 2.基类和派生类之间的转换

1.继承

1.1 继承的概念

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许我们在保持原有类特性的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这样产生新的类,称派生类
没使用继承的两个类Student和Teacher,Student和Teacher类里面都有姓名/地址/年龄/电话/住址等成员变量,都有identity身份证的成员函数,设计就开始冗余。

class Student
{
public:// 进⼊校园/图书馆/实验室刷⼆维码等⾝份认证void identity(){// ...}// 学习void study(){// ...}
protected:string _name = "peter"; // 姓名string _address; // 地址string _tel; // 电话int _age = 18; // 年龄int _stuid; // 学号
};
class Teacher
{
public:void identity(){// ...}// 授课void teaching(){//...}
protected:string _name = "张三"; // 姓名int _age = 18; // 年龄string _address; // 地址string _tel; // 电话string _title; // 职称
};
int main()
{return 0;
}

下面我们公共的成员都放到Person类中,Student和teacher都继承Person,就可以复用这些成员,就不需要重复定义了,省去了很多麻烦。

class Person
{
public:// 进⼊校园/图书馆/实验室刷⼆维码等⾝份认证void identity(){cout << "void identity()" << _name << endl;}
protected:string _name = "张三"; // 姓名string _address; // 地址string _tel; // 电话int _age = 18; // 年龄
};
class Student : public Person{
public:// 学习void study(){// ...}protected:int _stuid; // 学号
};
class Teacher : public Person
{
public:// 授课void teaching(){//...}
protected:string title; // 职称
};
int main()
{Student s;Teacher t;s.identity();t.identity();return 0;
}

1.2继承的定义

1.2.1定义格式

Person是基类,也称作父类。Student是派生类,也称作子类。(因为翻译的原因,所以既叫基类/派生类,也叫父类/子类)
在这里插入图片描述
在这里插入图片描述

1.2.2继承基类成员访问方式的变化

类成员/继承方式public继承protected继承private继承
基类的pubic成员派生类的public成员派生类的protected成员派生类的private成员
基类的protected成员派生类的public成员派生类的public成员派生类的public成员
基类的private成员在派生类中不可见在派生类中不可见在派生类中不可见
  • 基类private成员在派生类中无论以什么方式式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。
  • 基类private成员在派生类中是不能被访问,如果基类成员不想在类外直接被访问,但需要在派生类中能访问,就定义为protected。可以看出保护成员限定符是因继承才出现的。
  • 实际上面的表格我们进行一下总结会发现,基类的私有成员在派生类都是不可见。基类的其他成员在派生类的访问方式 == Min(成员在基类的访问限定符,继承方式),public > protected >private。
  • 使用关键字class时默认的继承方式是private,使用struct时默认的继承方式是public,不过最好显示的写出继承方式。
  • 在实际运用中⼀般使用都是public继承,几乎很少使用protetced/private继承,也不提倡使用protetced/private继承,因为protetced/private继承下来的成员都只能在派生类的类里面使用,实际中扩展维护性不强。

1.3继承模板

namespace jiang
{//template<class T>//class vector//{};// stack和vector的关系,既符合is-a,也符合has-atemplate<class T>class stack : public std::vector<T>{public:void push(const T& x){// 基类是类模板时,需要指定⼀下类域,// 否则编译报错:error C3861: “push_back”: 找不到标识符// 因为stack<int>实例化时,也实例化vector<int>了// 但是模版是按需实例化,push_back等成员函数未实例化,所以找不到vector<T>::push_back(x);//push_back(x);}void pop(){vector<T>::pop_back();}const T& top(){return vector<T>::back();}bool empty(){return vector<T>::empty();}};
}
int main()
{jiang::stack<int> st;st.push(1);st.push(2);st.push(3);while (!st.empty()){cout << st.top() << " ";st.pop();}return 0;
}

2.基类和派生类之间的转换

  • public继承的派生类对象 可以赋值给基类的指针 / 基类的引用。有个形象的说法叫切片或者切割。寓意把派生类中基类那部分切出来,基类指针或引用指向的是派生类中切出来的基类那部分。
  • 基类对象不能赋值给派⽣类对象。
  • 基类的指针或者引用可以通过强制类型转换赋值给派生类的指针或者引用。但是必须是基类的指针是指向派⽣类对象时才是安全的。这里基类如果是多态类型,可以使用RTTI(Run-Time Type Information)的dynamic_cast 来进行识别后进行安全转换。
    在这里插入图片描述
int main()
{jiang::stack<int> st;st.push(1);st.push(2);st.push(3);while (!st.empty()){cout << st.top() << " ";st.pop();}return 0;
}
class Person
{
protected:string _name; // 姓名string _sex; // 性别int _age; // 年龄
};
class Student : public Person
{
public:int _No; // 学号
};
int main()
{Student sobj;// 1.派⽣类对象可以赋值给基类的指针/引⽤Person* pp = &sobj;Person& rp = sobj;// ⽣类对象可以赋值给基类的对象是通过调⽤后⾯会讲解的基类的拷⻉构造完成的Person pobj = sobj;//2.基类对象不能赋值给派⽣类对象,这⾥会编译报错sobj = pobj;return 0;
}
http://www.dtcms.com/a/488567.html

相关文章:

  • 江西住房和城乡建设部网站首页东莞高森网络营销
  • 网站优化包括郑州seo优化顾问
  • C++ 重载运算符和重载函数
  • 杭州桐庐网站建设做两个网站 之间超链接
  • 怎样建设好门户网站宜春网站设计公司
  • 南通网站制作公司哪家好网站制作的相关术语有哪些
  • 做网站需要多少钱呢专业团队黑人
  • 温州网站建设服务温州建网站业务人员
  • 网站推广设计呼和浩特市网站
  • DOM 删除节点
  • QuickBI VS FineBI设置警戒线,QuickBI功能更全
  • 模型剪枝详解(一):认识剪枝
  • 网站建设技术教程视频洛阳直播网站建设
  • asp.net+网站开发+实战百度最贵关键词排名
  • 百度做的网站字体侵权吗什么做书籍的网站好
  • 好的交互网站html5网页设计工具
  • ArkTS入门级教程1——DevEco Studio 5.0.5 的安装与使用
  • 深度科技商业官方网站wordpress培训机构主题
  • 网站备案手续网站的导航栏
  • 建立设计网站富阳设计公司企业网站详情
  • 怎么看待网站开发wordpress去广告插件
  • 服务器iis做网站网站栏目优化
  • 有需要网站建设的没电子商务这个专业好吗
  • 河南省建设厅官方网站 吴浩家装设计公司排行榜
  • 百度问答下载安装seo查询工具
  • 海关网站建设方案网站建设公开
  • 兰州网站建设运营方案如何制作自己的网站链接视频
  • 网站关键词排名突然没了宜宾市珙县住房城乡建设网站
  • 浅谈高校网站群的建设泰州网络营销
  • 外贸网站违反谷歌规则网站公告怎么做