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

偷拍男女宾馆做爰视频网站谷歌三件套一键安装

偷拍男女宾馆做爰视频网站,谷歌三件套一键安装,怎样用模板做网站,网站架构的优化目录 继承基本概念 编程示例 1.基类(父类)Person 代码特点说明 权限对类的影响 ​编辑 编程示例 1. 公有继承 (public inheritance) 2. 保护继承 (protected inheritance) 3. 私有继承 (private inheritance) 重要规则 实际应用 继承基本概…

目录

继承基本概念

编程示例

1.基类(父类)Person

代码特点说明

权限对类的影响

​编辑

编程示例 

1. 公有继承 (public inheritance)

2. 保护继承 (protected inheritance)

3. 私有继承 (private inheritance)

重要规则

实际应用


继承基本概念

继承是面向对象编程(OOP)中的一个核心概念,特别是在C++中。它允许一个类(称为派生类或子类)继承另一个类(称为基类或父类)的属性和方法。继承的主要目的是实现代码重用,以及建立一种类型之间的层次关系。

特点

1. 代码重用:子类继承了父类的属性和方法,减少了代码的重复编写。

2. 扩展性:子类可以扩展父类的功能,添加新的属性和方法,或者重写(覆盖)现有的方法(属性不能被重写或覆盖)。

3. 多态性:通过继承和虚函数,C++支持多态,允许在运行时决定调用哪个函数。

编程示例

C++中类的继承机制,定义了一个基类(Person)和两个派生类(Student和Teacher)。

基类(父类)Person

以下使用一个编程案例体验一下继承,如有一个 Person(表示人的基本信息)类,包含两个成员变量:name 和 age。创建两个 Student 和 Teacher 类,分别表示学生和老师。众所周知,不管是老师还是学生都是人,都有名字和年龄。如果给这两个类都声明成员变量: name 和 age ,就会显得繁琐,这里就可以使用继承,将 Person 作为父类,Student 和 Teacher 作为子类并且用公有权限继承 Person(父类),使 Student 和 Teacher 可以使用 Person 类里的成员变量,减少代码的重复编写。

#include <iostream>
#include <string>using namespace std;  // 使用标准命名空间// 基类(父类)Person - 表示人的基本信息
class Person
{
public:  // 公有访问权限string name;  // 姓名属性int age;      // 年龄属性
};// 派生类(子类)Student - 继承自Person类,表示学生
class Student : public Person  // 公有继承方式
{
public:string occupation;  // 学生特有的职业属性// 打印学生信息的方法void printfStudentMsg(){// 可以访问从Person继承的name和age,以及自身的occupationcout << "职业:" << occupation << ",姓名:" << name << ",年龄:" << age << endl;}
};// 派生类(子类)Teacher - 继承自Person类,表示教师
class Teacher : public Person  // 公有继承方式
{
public:string occupation;  // 教师特有的职业属性// 打印教师信息的方法void printfTeacherMsg(){// 可以访问从Person继承的name和age,以及自身的occupationcout << "职业:" << occupation << ",姓名:" << name << ",年龄:" << age << endl;}
};int main()
{// 创建Student对象Student stu;// 设置学生属性stu.name = "李白";         // 设置继承自Person的name属性stu.age = 18;              // 设置继承自Person的age属性stu.occupation = "学生";    // 设置Student特有的occupation属性stu.printfStudentMsg();     // 调用Student的打印方法// 创建Teacher对象Teacher t;// 设置教师属性(修正了原始代码中的错误赋值)t.name = "张三";           // 设置继承自Person的name属性t.occupation = "教师";     // 设置Teacher特有的occupation属性t.age = 26;                // 设置继承自Person的age属性t.printfTeacherMsg();       // 调用Teacher的打印方法return 0;
}
代码特点说明
  1. 继承关系

    • Person是基类,包含人的基本属性(name和age)

    • StudentTeacher是派生类,通过公有继承(public Person)获得Person的所有public成员

  2. 派生类特点

    • 继承了基类的所有public成员(name和age)

    • 添加了自己的特有成员(occupation)

    • 定义了自己的成员函数(printfStudentMsg和printfTeacherMsg)

  3. 公有继承(public inheritance)特点:

    • 基类的public成员在派生类中仍然是public

    • 基类的protected成员在派生类中仍然是protected

    • 基类的private成员在派生类中不可直接访问

权限对类的影响

C++中,访问控制符对继承的影响可以通过下表来清晰地展示。这个表格展示了不同类型的继承( public protected private )如何影响基类的不同类型成员( public protected 、private )在派生类中的访问级别。

解释:

public 继承:基类的 public 成员在派生类中仍然是 public 的, protected 成员仍然是 protected 的。基类的 private 成员在派生类中不可访问。

protected 继承:基类的 public protected 成员在派生类中都变成 protected 的。基类的 private 成员在派生类中不可访问。

private 继承:基类的 public protected 成员在派生类中都变成 private 的。基类的 private 成员在派生类中不可访问。

这个表格提供了一个快速参考,帮助理解在不同类型的继承中基类成员的访问级别是如何变化的。记住,无论继承类型如何,基类的 private 成员始终不可直接在派生类中访问。

访问权限回顾

编程示例 

#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(){cout << "车跑起来了" << endl;}void stop();
};
//私有继承测试
class TestClass : private Vehicle{
public:void tsetFunc(){price = 10; //基类的公有数据被私有继承后,在派生类中权限编程私有,只限在类内部使用}
};
//公有继承测试
class Truck : protected Vehicle{
public:void testFunc(){type = "数据测试"; //保持私有权限protectedData = 10; //保持私有权限privateData = 10; //报错了,基类的私有成员,不管哪种方式的继承都是不可访问的。}
};
//公有继承,基类的公有权限和保护权限不变,私有成员不能访问
class Bickle : public Vehicle{
public:void testFunc(){protectedData = 10;}
};
//派生类,子类
class Roadster : public Vehicle{ //跑车,也是抽象,比父类感觉上范围缩小了点
public:int stateOfTop;void openTopped();void pdrifting();
};
int main()
{TestClass test;test.price = 3.3; //报错了,基类的公有成员被私有继承后,降为私有权限Truck t;t.type = "测试"; //报错了,基类的公有成员被保护继承后,降为保护权限t.protectedData = 10; //从报错信息看出,保护继承造成基类的保护成员还是保持保护权限Roadster ftype;ftype.type = "捷豹Ftype";ftype.run();Bickle bike;bike.type = "死飞";bike.run();return 0;
}

1. 公有继承 (public inheritance)

class Roadster : public Vehicle
class Bickle : public Vehicle

特点:

  • 基类的public成员在派生类中保持public

  • 基类的protected成员在派生类中保持protected

  • 基类的private成员在派生类中不可访问

例子中Bickle类的testFunc()可以访问基类的protected成员protectedData

2. 保护继承 (protected inheritance)

class Truck : protected Vehicle

特点:

  • 基类的public和protected成员在派生类中都变为protected

  • 基类的private成员在派生类中不可访问

所以在Truck类外部:

Truck t;
t.type = "测试"; // 错误,type现在是protected
t.protectedData = 10; // 错误,protected成员不能在类外访问

3. 私有继承 (private inheritance)

class TestClass : private Vehicle

特点:

  • 基类的public和protected成员在派生类中都变为private

  • 基类的private成员在派生类中不可访问

所以在TestClass类外部:

TestClass test;
test.price = 3.3; // 错误,price现在是private

重要规则

  1. 无论哪种继承方式,基类的private成员在派生类中都不可直接访问

  2. 继承方式决定了基类成员在派生类中的访问权限:

    • 公有继承:保持原权限

    • 保护继承:public→protected

    • 私有继承:public/protected→private

实际应用

  • 公有继承是最常用的,表示"是一个"的关系

  • 保护继承和私有继承较少使用,通常用于实现细节的隐藏

  • 在派生类内部,可以访问基类的public和protected成员(取决于继承方式)

虚函数

http://www.dtcms.com/wzjs/161910.html

相关文章:

  • 做网站用新域名还是老域名seo是干嘛的
  • 老牛wordpress搜索seo怎么优化
  • 网站自动生成网页吸引人的营销标题
  • 石家庄网站定制开发小程序模板
  • 郑州做网站的专业公司有哪些一键优化
  • 如何 做网站挣钱站长工具下载app
  • 长春网站建设q479185700棒广点通官网
  • 建一个网站大概需要多长时间北京刚刚宣布比疫情更可怕的事情
  • 织梦建站教程全集江西百度推广公司
  • 做办公用品的招聘网站湖南关键词排名推广
  • 什么是网站app建设网站优化基本技巧
  • 室内设计效果图的软件网页优化公司
  • php响应式个人博客网站设计免费留电话号码的广告
  • 网站建设部署与发布有效期sem和seo是什么
  • 在线申请营业执照常见的系统优化软件
  • 做效果图的兼职网站合肥百度seo排名
  • 郑州网站开发公司线上推广平台有哪些
  • 如何做网站的悬浮窗口百度风云榜排行榜
  • 做网站开发的公司销售专业的营销团队哪里找
  • 拉萨网站建设网站seo视频教程
  • 西安做网站哪家最便宜营销手段和营销方式
  • 做网站平台公司有哪些广告发布
  • 多终端网站seo优化关键词
  • 网站建设 鸿网络推广代理平台
  • 网站vps星力游戏源码
  • 建设网站教程视频视频下载免费手机网站建站平台
  • 海口网站建设哪个好薇推广平台哪儿有怎么做
  • 做淘宝网站网络推广怎么做好
  • 太原百度公司找山西云起时seo优化名词解释
  • 四川省工程项目建设投标发布网站电商网站订烟平台官网