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

公司网站页面加密开网店的基础知识

公司网站页面加密,开网店的基础知识,网站建设价格标准报价单,个人网站不备案会怎么样🚀 C 面向对象特性详解:继承机制全解析——代码复用与扩展的核心(含实战陷阱) 📅 更新时间:2025年6月19日 🏷️ 标签:C | 继承 | OOP | 面向对象 | 代码复用 | C基础 文章目录 &…

🚀 C++ 面向对象特性详解:继承机制全解析——代码复用与扩展的核心(含实战陷阱)
📅 更新时间:2025年6月19日
🏷️ 标签:C++ | 继承 | OOP | 面向对象 | 代码复用 | C++基础

文章目录

  • 📖 前言
  • 🔍 一、基础概念:C++继承
    • 1. 什么是继承
    • 2. 继承的语法
    • 3. 继承的作用
    • 4. 继承的类型
  • 📝 二、语法详解:继承的实现
    • 1. 公有继承(public)
    • 2. 保护继承(protected)
    • 3. 私有继承(private)
    • 4. 继承方式对成员访问的影响
  • ⚠️ 三、常见陷阱
    • 陷阱1:父类的private成员不能被子类直接访问
  • 🎯 四、实战案例
    • 1. 继承实现代码复用
    • 5. 继承方式访问权限总结表
  • 📊 五、总结

📖 前言

C++和面向对象编程(OOP) 中,继承是实现代码复用和扩展的核心机制。通过继承,子类可以直接拥有父类的属性和方法,大大减少了重复代码,并为多态等高级特性打下了基础。理解继承不仅有助于写出结构清晰、易维护的程序,也是掌握OOP思想的关键一步

🔍 一、基础概念:C++继承

1. 什么是继承

继承是面向对象编程(OOP)中的核心特性之一。它允许一个类(子类/派生类)自动获得另一个类(父类/基类)的属性和方法,从而实现代码复用和功能扩展<.font>

2. 继承的语法

class 父类名 {// 父类成员
};class 子类名 : 继承方式 父类名 {// 子类成员
};

常见的继承方式有:publicprotectedprivate

3. 继承的作用

  • 代码复用,提高开发效率
  • 实现类之间的层次结构
  • 多态打下基础

4. 继承的类型

  • 公有继承(public):最常用,父类的公有成员和保护成员在子类中保持原有访问权限,子类只能访问父类的public下的成员以及函数
  • 保护继承(protected):父类的公有和保护成员在子类中都变为保护成员
  • 私有继承(private):父类的公有和保护成员在子类中都变为私有成员

📝 二、语法详解:继承的实现

1. 公有继承(public)

公有继承是最常用的继承方式,表示"is-a"关系。子类对象可以直接访问父类的public成员,父类的protected成员在子类内部可以访问,但在外部不可见

示例:

class Animal {
public:void speak() { cout << "Animal speaks" << endl; }
protected:void eat() { cout << "Animal eats" << endl; }
};class Dog : public Animal {
public:void bark() { cout << "Dog barks" << endl; }void test() {speak(); // 可以访问父类public成员eat();   // 可以内部访问父类protected成员}
};int main() {Dog d;d.speak(); // 正确,public成员d.bark();  // 正确,Dog自己的方法// d.eat(); // 错误,protected成员不能在外部访问d.test();  // 正确,通过子类成员函数间接访问protected成员return 0;
}
输出:
Animal speaks
Dog barks
Animal speaks
Animal eats

公有继承下,子类对象可以直接访问父类的public成员,protected成员只能在子类内部访问


2. 保护继承(protected)

保护继承表示"实现继承",不希望外部把子类当作父类用。父类的public和protected成员在子类中都变成protected,外部无法访问,但子类内部可以访问

示例:

class Base {
public:int a;
protected:int b;
};class Derived : protected Base {
public:void show() {a = 10; // 可以内部访问,a在Derived中是protectedb = 20; // 可以内部访问,b在Derived中是protectedcout << "a = " << a << ", b = " << b << endl;}
};int main() {Derived d;// d.a = 1; // 错误,a在Derived中是protected 无法外部访问// d.b = 2; // 错误,b在Derived中是protected 无法外部访问d.show(); // 正确,通过成员函数间接访问return 0;
}输出:
a = 10, b = 20

保护继承下,父类的public和protected成员在子类中都变成protected,只能在子类及其后代内部c访问


3. 私有继承(private)

私有继承表示"实现继承",但对子类和外部都隐藏父类接口。父类的public和protected成员在子类中都变成private,只能在子类内部访问,外部和子类的子类都无法访问

示例:

class Base {
public:int a;
protected:int b;
};class Derived : private Base {
public:void show() {a = 10; // 可以内部访问,a在Derived中是privateb = 20; // 可以内部访问,b在Derived中是privatecout << "a = " << a << ", b = " << b << endl;}
};class SubDerived : public Derived {
public:void test() {// a = 1; // 错误,a在Derived中是private,SubDerived无法访问// b = 2; // 错误,b在Derived中是private,SubDerived无法访问}
};int main() {Derived d;// d.a = 1; // 错误,a在Derived中是private 无法外部访问// d.b = 2; // 错误,b在Derived中是private 无法外部访问d.show(); // 正确,通过成员函数间接访问return 0;
}

私有继承下,父类的public和protected成员在子类中都变成private,只能在子类内部访问,子类的子类和外部都无法访问

就算子类的子类用私有继承,内部依然无法访问!!!!!!!!

class SubDerived : private Derived {
public:void test() {// a = 1; // 错误,子类的子类在内部也依然无法访问// b = 2; // 错误,}
};

4. 继承方式对成员访问的影响

继承方式父类public成员父类protected成员父类private成员
publicpublicprotected不可访问
protectedprotectedprotected不可访问
privateprivateprivate不可访问

无论哪种继承方式,父类的private成员都无法被子类访问


⚠️ 三、常见陷阱

陷阱1:父类的private成员不能被子类直接访问

❌ 错误示例:

class Base {
private:int x;
};
class Derived : public Base {
public:void foo() { x = 10; } // 错误,x是private   即使是在内部访问也不行
};

✅ 正确示例:

class Base {
protected:int x;
};
class Derived : public Base {
public:void foo() { x = 10; } // 正确,x是protected  可以内部访问  但不能外部访问
};

private成员只能被本类访问,不能被子类直接访问


🎯 四、实战案例

1. 继承实现代码复用

class Shape {
public:void draw() { cout << "Drawing shape" << endl; }
};class Circle : public Shape {
public:void drawCircle() { cout << "Drawing circle" << endl; }
};int main() {Circle c;c.draw();       // 复用Shape的draw方法c.drawCircle(); // Circle自己的方法return 0;
}

继承让子类自动拥有父类的功能,减少重复代码

5. 继承方式访问权限总结表

继承方式访问位置可访问自身成员可访问父类成员(在子类中的权限)
public外部publicpublic
子类内部public, protected, privatepublic, protected
protected外部public无(父类成员都变成protected,外部不可访问)
子类内部public, protected, privateprotected(原public、protected)
private外部public无(父类成员都变成private,外部不可访问)
子类内部public, protected, privateprivate(原public、protected)

说明:

  • "自身成员"指子类自己声明的成员。
  • "父类成员"指通过继承获得的父类成员。
  • "在子类中的权限"指父类成员在子类中的访问级别。
  • "无"表示外部无法访问父类成员。

📊 五、总结

  • 继承是OOP三大特性之一**,实现了代码复用和扩展**
  • 公有继承最常用,注意访问权限的变化
  • 父类的private成员不能被子类直接访问
  • 继承为多态提供了基础

如果您觉得这篇文章对您有帮助,不妨点赞 + 收藏 + 关注,更多 C++ 系列教程将持续更新 🔥!


文章转载自:

http://xmefVrSD.qphdp.cn
http://3n9fYXzf.qphdp.cn
http://7FPri9v0.qphdp.cn
http://d2eh9YGa.qphdp.cn
http://0K7RFHV4.qphdp.cn
http://kP6CCtTj.qphdp.cn
http://xf56J2yV.qphdp.cn
http://kKAR6FFH.qphdp.cn
http://zcpOIc7s.qphdp.cn
http://JJ9gJCnr.qphdp.cn
http://W8B48amH.qphdp.cn
http://L6HExqix.qphdp.cn
http://cvFEbTWs.qphdp.cn
http://tsjnaE7q.qphdp.cn
http://J83yhA62.qphdp.cn
http://0ClomfcY.qphdp.cn
http://HRsMXTPs.qphdp.cn
http://liKjrFZn.qphdp.cn
http://TSxG8ZIg.qphdp.cn
http://H4loLghB.qphdp.cn
http://DyqNNMvM.qphdp.cn
http://oMAcH9Dw.qphdp.cn
http://gz1ovnj4.qphdp.cn
http://4nNGG35D.qphdp.cn
http://aGSYngSA.qphdp.cn
http://7z8FCGim.qphdp.cn
http://4GHnaauY.qphdp.cn
http://2aeI3ZGT.qphdp.cn
http://JBxoYYlg.qphdp.cn
http://en8vmxYf.qphdp.cn
http://www.dtcms.com/wzjs/606936.html

相关文章:

  • 个人音乐网站建设免费网站怎么建立
  • 贵阳监理建设网站汶上网站建设公司
  • 淮南做网站的公司商业计划的网站建设费用
  • html 旅游网站重庆网站开发公司
  • 网站 数据库 关系城乡建设官网
  • 广东省建设教育协会官方网站苏州市优化网站推广哪家好
  • 自己做网站的网址定制微信网站
  • 亚马逊网站运营怎么做重庆市工程招标信息网
  • 怎样做士产品销售网站衡阳seo优化公司
  • 二手交易平台广州seo公司排名
  • 微信公众号做微网站网站建设学什么
  • 天津市武清区住房建设网站做网站会用到的色彩代码单词
  • 怎么免费做网站网站做软件有哪些
  • win7 网站建设网站名称在哪里修改
  • 网站内部链接怎麽做水果店营销策略都有哪些
  • 网站开发建立站点wordpress无法设置
  • 红酒手机网站建设学网站开发推荐书
  • 企业网站建设义乌杭州互联网设计公司
  • 网站开通宣传怎么写网站开发设计过程
  • 精神文明网站建设内容wordpress 比价
  • 甘肃 网站备案最厉害的搜索引擎
  • 苏州市城乡和建设局网站首页个人网页官方网站
  • 怎么建立网站文件夹wordpress微商城模板下载
  • 网站开发一个网站什么叫个人网站软件
  • 网页免费浏览网站哪个网站有上门做指甲
  • 襄阳网站seologo设计的六大要素
  • 衡水做网站找谁淮南人才网
  • 做网站有什么好处吗东莞市阳光网
  • wordpress后台无法访问北京优化公司司
  • 免费的素材网站推荐网站开发助手