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

做解密类网站可行网站内容页面怎么做

做解密类网站可行,网站内容页面怎么做,公司网站制作服务,网站建设平台简介🔗 运行环境:C/C 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 💗 大家好&…

🔗 运行环境:C/C++

🚩 撰写作者:左手の明天

🥇 精选专栏:《python》

🔥  推荐专栏:《算法研究》

🔐#### 防伪水印——左手の明天 ####🔐

💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗

💗今天分享【C/C++】——继承💗

📆  最近更新:2025 年 03 月 30 日,左手の明天的第 356 篇原创博客

📚 更新于专栏:C/C++入门与进阶

🔐#### 防伪水印——左手の明天 ####🔐


一、继承基础概念

1.1 继承的本质

继承是面向对象编程的三大特性之一,允许子类继承父类的属性和方法,简单地说,派生类是基类得一种特殊化,它继承了基类的成员变量和成员函数,并且可以在这个基础上添加新的成员或者修改从基类继承来的成员的行为,实现代码复用和层次化设计。

// 基类定义
class Animal {
public:void breathe() {cout << "呼吸中..." << endl;}int age;
};// 派生类定义
class Dog : public Animal {  // 公有继承
public:void bark() {cout << "汪汪!" << endl;}
};// 使用示例
int main() {Dog myDog;myDog.breathe();  // 继承基类方法myDog.bark();     // 自身方法myDog.age = 2;    // 继承基类属性
}

二、继承类型详解

2.1 三种继承方式对比

继承分为public、protected、private;这几种继承方式的不同体现在子类中对父类属性或者行为的访问权限:

继承方式基类public成员基类protected成员基类private成员
publicpublicprotected不可访问
protectedprotectedprotected不可访问
privateprivateprivate不可访问
  • 子类不能在类外或者类内直接访问父类的private属性或者行为;无论是哪种访问限定符修饰的属性或者行为,但是父类的行为和属性还是被继承到子类中了;
  • protected继承:父类中的public或者protected访问限定符修饰的在子类中的访问权限全部变为protected;若是想父类中的不被类外部访问,但是想要被子类访问,就把父类中的属性或者行为的访问限定符写作protected;可以得知protected就是为了继承而生的;
  • 继承时可以不写继承的方式。那么class默认为private继承;struct默认为pubilc继承;

2.2 代码示例

class Base {
public:int publicVar = 1;
protected:int protectedVar = 2;
private:int privateVar = 3;
};// 公有继承
class PublicDerived : public Base {void accessCheck() {publicVar = 10;      // ✔️ 保持publicprotectedVar = 20;   // ✔️ 保持protected// privateVar = 30;  // ❌ 不可访问}
};// 保护继承
class ProtectedDerived : protected Base {void accessCheck() {publicVar = 10;      // ✔️ 转为protectedprotectedVar = 20;   // ✔️ 保持protected}
};// 私有继承
class PrivateDerived : private Base {void accessCheck() {publicVar = 10;      // ✔️ 转为privateprotectedVar = 20;   // ✔️ 转为private}
};

三、继承中的构造/析构机制

3.1 执行顺序

基类构造 -> 派生类构造 -> 派生类析构 -> 基类析构

class BaseClass {
public:BaseClass() { cout << "基类构造" << endl; }~BaseClass() { cout << "基类析构" << endl; }
};class DerivedClass : public BaseClass {
public:DerivedClass() { cout << "派生类构造" << endl; }~DerivedClass() { cout << "派生类析构" << endl; }
};/*
输出顺序:
基类构造 -> 派生类构造 -> 派生类析构 -> 基类析构
*/

3.2 初始化列表实践

class Engine {
public:Engine(int hp) : horsepower(hp) {}
private:int horsepower;
};class Car : public Engine {
public:// 正确初始化基类成员Car(int hp, string c) : Engine(hp), color(c) {}
private:string color;
};

四、多态与虚函数

4.1 虚函数实现动态绑定

class Shape {
public:virtual void draw() {  // 虚函数声明cout << "绘制基础形状" << endl;}virtual ~Shape() {}    // 虚析构函数
};class Circle : public Shape {
public:void draw() override {  // 方法重写cout << "绘制圆形" << endl;}
};class Square : public Shape {
public:void draw() override {cout << "绘制正方形" << endl;}
};// 多态调用演示
void drawShape(Shape& shape) {shape.draw();
}int main() {Circle c;Square s;drawShape(c);  // 输出:绘制圆形drawShape(s);  // 输出:绘制正方形
}

五、多重继承与虚继承

5.1 多重继承示例

class Printer {
public:void print(string doc) {cout << "打印文档: " << doc << endl;}
};class Scanner {
public:void scan() {cout << "扫描文档" << endl;}
};// 多重继承
class AllInOne : public Printer, public Scanner {};// 使用
AllInOne device;
device.print("报告");
device.scan();

5.2 虚继承解决菱形问题

class BaseComponent {
public:int id;
};// 虚继承声明
class Mouse : virtual public BaseComponent {};
class Keyboard : virtual public BaseComponent {};class InputDevice : public Mouse, public Keyboard {
public:void setup() {id = 100;  // 现在不会产生二义性}
};

六、最佳实践与常见陷阱

6.1 继承使用准则

  1. 优先使用组合而非继承

  2. 保持继承层次不超过3层

  3. 基类析构函数必须为虚函数

  4. 避免多重继承的复杂层级

6.2 常见错误示例

class A {
private:int secret;
};class B : public A {
public:void expose() {// cout << secret;  // 错误:访问基类私有成员}
};class C {
public:void func();
};class D : public C {
private:using C::func;  // 改变访问权限
};

七、现代C++继承特性

7.1 override/final关键字

class Base {
public:virtual void process() {}virtual void log() final {}  // 禁止重写
};class Derived : public Base {
public:void process() override {}  // 显式重写// void log() {}  // 错误:尝试重写final方法
};

7.2 使用智能指针管理继承

class Animal {
public:virtual ~Animal() = default;
};class Cat : public Animal {};// 使用基类指针管理派生类对象
unique_ptr<Animal> pet = make_unique<Cat>();

 

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

相关文章:

  • 网站建设公司广东东方cj网上购物商城
  • 中国建设银行官网站e路护下载seo关键词排名优化制作
  • 网站开发外包方案云筑网
  • 青海网站制作公司东莞本地招聘网
  • 太原网站制作企业广西建设网是正规网站吗
  • 知名网站开发企业提升学历英语
  • 可以做推广的网站可以浏览的外文网站
  • 做网站公司圣辉友联微信小程序介绍
  • 静态网站跟动态的区别宿迁网站制作公司
  • 文山州建设局信息网站本地服务器公网ip wordpress
  • 网站建设专有名词欧美网站建设
  • 营口网站建设求职简历上海网站设计的公司
  • 谷歌网站建站小何自助建站
  • 做网站的收益在哪响应式网站生成
  • 加强网站的建设工作seo网站制作
  • 手机网站开发 html5网站建设需求分析班级
  • wap网站分享到微信wordpress自带的简码
  • 汕头建站wordpress没有图片放大
  • 淘宝客优惠券网站怎么做数码公司网站建设的意义
  • 惠州住房和建设局网站网站推广的工作内容
  • 廊坊网站排名优化价格揭阳制作公司网站
  • 小学门户网站建设情况汇报爱站网长尾关键词挖掘工具下载
  • 进行网站推广有哪些常用方法门户网站的营销方式
  • 外贸商城网站建设公司做网站个网站要多少钱
  • 化工建设网站做设计转钱网站
  • 手机版网站模板 免费深圳网站开发公司h5
  • 网站视频怎么做的好自己做pc网站建设
  • 联想网站建设与分析泰州做网站哪家好
  • 山西网站建设深圳网站制作公司深圳app开发
  • 书店网站建设人员分配视频直播app开发