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

湖北企业模板建站信息企业品牌推广宣传方案

湖北企业模板建站信息,企业品牌推广宣传方案,html网页制作我的家乡,好看的页面设计当然可以&#xff01;下面是对这段 C 代码的逐行详细注释解释&#xff0c;帮助你理解类继承、访问控制&#xff08;public、protected、private&#xff09;以及继承方式对成员权限的影响。 &#x1f9f1; 基类定义&#xff1a;Vehicle cpp 深色版本 #include <iostream&g…

当然可以!下面是对这段 C++ 代码的逐行详细注释解释,帮助你理解类继承、访问控制(publicprotectedprivate)以及继承方式对成员权限的影响。


🧱 基类定义:Vehicle

 

cpp

深色版本

#include <iostream>
using namespace std;

引入标准输入输出库,并使用命名空间 std,避免每次写 std::cout

 

cpp

深色版本

// 基类,父类
class Vehicle { // 交通工具,车,抽象的概念

定义一个基类 Vehicle,表示交通工具的基本属性和功能。

 

cpp

深色版本

public:string type;         // 公有成员:类型string contry;       // 国家string color;        // 颜色double price;        // 价格int numOfWheel;      // 轮子数量

这些是 public 成员变量,外部可以直接访问。

 

cpp

深色版本

protected:int protectedData;   // 受保护成员,只能在本类和派生类中访问,不能被外部访问

protected 成员对外不可见,但在派生类中可以访问。

 

cpp

深色版本

private:int privateData;     // 私有成员,只能在本类内部访问,派生类也不能访问

private 成员是最严格的访问级别,即使是派生类也无法访问。

 

cpp

深色版本

public:void run() {cout << "车跑起来了" << endl;}

公有成员函数,用于模拟车辆运行。

 

cpp

深色版本

    void stop();

函数声明,但未定义。如果调用会报链接错误。

 

cpp

深色版本

}; // 类定义结束

🧪 在类外定义 stop() 方法(虽然没实现)

 

cpp

深色版本

void Vehicle::stop() {// 实现内容省略
}

这里只是补充说明,实际上这个函数没有给出具体实现。


🔁 继承方式测试

1. 私有继承:TestClass 继承自 Vehicle

 

cpp

深色版本

class TestClass : private Vehicle {

使用私有继承,将 Vehicle 的所有公有和受保护成员都降级为 private

 

cpp

深色版本

public:void testFunc() {price = 10; // 基类的公有数据被私有继承后,在派生类中变为私有,只限在类内部使用}
};
  • price 是基类的公有成员。
  • 私有继承后,它变成 TestClass 内部的私有成员。
  • 所以可以在 testFunc() 中访问。
 

cpp

深色版本

TestClass test;
test.price = 3.3; // 报错了,基类的公有成员被私有继承后,降为私有权限

❌ 错误:

  • 外部无法访问 TestClass 的 price,因为它已经被降为私有权限。

2. 保护继承:Truck 继承自 Vehicle

 

cpp

深色版本

class Truck : protected Vehicle {

使用保护继承,将 Vehiclepublicprotected 成员都变成 protected

 

cpp

深色版本

public:void testFunc() {type = "数据测试"; // 原先是 public,现在变成 protected,可在派生类中访问protectedData = 10; // 原先是 protected,现在仍为 protected,可以访问privateData = 10; // ❌ 报错:基类的私有成员,不管哪种继承方式都无法访问}
};
  • type 是 public,在保护继承下变成 protected,可以访问。
  • protectedData 是 protected,继承后仍是 protected,可以访问。
  • privateData 是 private,无论何种继承方式,都不能访问。
 

cpp

深色版本

Truck t;
t.type = "测试"; // ❌ 报错:保护继承后,type 已经变成 protected,外部不能访问
t.protectedData = 10; // ❌ 报错:protected 成员不能在类外访问

3. 公有继承:Bickle 继承自 Vehicle

 

cpp

深色版本

class Bickle : public Vehicle {

公有继承保持基类成员的访问权限不变。

 

cpp

深色版本

public:void testFunc() {protectedData = 10; // 基类的 protected 成员在派生类中仍是 protected,可以访问}
};
  • protectedData 是 protected,继承后还是 protected,所以可以访问。
  • 如果尝试访问 privateData,仍然无法访问。

4. 子类 Roadster:公有继承自 Vehicle

 

cpp

深色版本

class Roadster : public Vehicle {

表示一种跑车,继承自 Vehicle

 

cpp

深色版本

public:int stateOfTop; // 新增成员,例如敞篷状态void openTopped(); // 敞篷方法void pdrifting(); // 漂移方法(可能拼写应为 drifting)
};

添加了新的成员变量和方法。

 

cpp

深色版本

int main()
{Roadster ftype;ftype.type = "捷豹Ftype"; // OK:type 是公有成员ftype.run(); // OK:run() 是公有函数Bickle bike;bike.type = "死飞"; // OK:type 是公有成员bike.run(); // OK:run() 是公有函数return 0;
}
  • ftype 和 bike 都是从 Vehicle 公有继承而来。
  • 所以它们都可以访问 type 和 run()

📌 总结:不同继承方式对成员权限的影响

基类成员公有继承保护继承私有继承
public 成员保持 public变成 protected变成 private
protected 成员保持 protected保持 protected变成 private
private 成员不可访问不可访问不可访问

✅ 输出说明

程序不会有任何输出,因为所有 cout 都被注释掉了或者没有实际打印语句。

但如果你添加如下语句:

 

cpp

深色版本

ftype.run(); // 输出:"车跑起来了"

你将看到输出结果。


🧠 小贴士

  • 如果你想让某个成员在派生类中也能访问,请设为 protected 或 public
  • private 成员无论怎样继承都不能被派生类访问。
  • protected 成员在派生类中可以访问,但不能在类外访问。
  • public 成员在派生类中依然可以访问,也可以在类外访问。

如果你还想继续扩展这个例子,比如:

  • 添加虚函数实现多态;
  • 使用抽象类;
  • 或者重载运算符;

欢迎继续提问,我可以帮你完善 😊

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

相关文章:

  • 网站制作图书wordpress定义小工具栏
  • 三d全景网站建设wordpress切换div组件
  • 网站界面需求apicloud下载
  • 微网站制作需要多少钱安徽住房和城乡建设厅官网
  • 龙华做网站公司代理公司注册哪家好
  • wordpress网站无法登陆wordpress纯静态化插件
  • 关于 门户网站 建设 请示东莞网站设计评价
  • 跨境电商网站开发公司wordpress pdf 在线
  • 买手机的网站燕窝网站怎么做
  • 曲靖做网站wordpress 文章 分类
  • 做质粒图谱的网站wordpress首页显示友情链接
  • 建设工程的在建设部网站wordpress自定义rss
  • 网站地图建设有什么用wordpress天气js代码
  • 丰联汽配网站建设成本每天免费体验6小时的云电脑
  • 在360网站做公告怎么弄河北世达建设集团有限公司网站
  • 怎么在阿里云建设网站上海专业制作网页
  • 郑州网站搭建电商课程培训
  • 吉安微信网站河南省网站
  • 有什么兼职做it的网站江东怎样优化seo
  • 专业网站推荐广东阳江发布最新消息
  • 做物品租赁网站简单网页代码html
  • wordpress修改站点名如何宣传推广自己的店铺
  • 网站建设重要汽车拆车件网上商城
  • 企业为何做网站国度网络网站建设
  • 一个网站突然打不开网站app开发建设
  • sns社交网站 建设文档微建站程序有哪些
  • 360搜索网站提交石家庄学生
  • 外贸网站建设公司哪家好旅游网站建设方案的总结
  • 刚做的网站关键字能搜到么wordpress调用相关文章
  • 网站开发问题及解决cms二次开发网站建设