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

ui的含义网站建设现在跨境电商最好做的是什么平台

ui的含义网站建设,现在跨境电商最好做的是什么平台,天元建设集团有限公司商业承兑汇票拒付最新消息,江门市专业做网站公司系列文章目录 总目录链接 文章目录 系列文章目录总目录链接 C面试基础系列-abstractOverview1.abstract关键点2.C 抽象类和纯虚函数的例子3.abstract重点关于作者 C面试基础系列-abstract Overview 在C中,abstract这个概念主要与抽象类(Abstract Clas…

系列文章目录

总目录链接


文章目录

  • 系列文章目录
    • 总目录链接
  • C++面试基础系列-abstract
    • Overview
    • 1.abstract关键点
    • 2.C++ 抽象类和纯虚函数的例子
    • 3.abstract重点
    • 关于作者


C++面试基础系列-abstract

Overview

在C++中,abstract这个概念主要与抽象类(Abstract Class)相关。抽象类是一种不能被实例化的类,它通常包含至少一个纯虚函数(Pure Virtual Function)。抽象类用于定义接口或行为规范,可以被其他类继承并实现具体的功能。

1.abstract关键点

以下是一些关于C++中抽象类的关键点:

  • 纯虚函数:
    • 纯虚函数是在基类中声明但没有实现的虚函数,其声明方式是在函数声明的末尾加上= 0。
    • 例如:virtual void doSomething() = 0;
  • 抽象类的定义:
    • 包含至少一个纯虚函数的类就是抽象类。
    • 抽象类不能被直接实例化,但可以被用作其他类的基类。
  • 继承抽象类:
    • 派生类必须实现基类中的所有纯虚函数,否则派生类也会是抽象类。
  • 接口定义:
    • 抽象类通常用于定义接口,让不同的派生类实现相同的接口。
  • 多态性:
    • 抽象类支持多态性,可以通过基类指针或引用调用派生类重写的虚函数。
      示例:
// 抽象类声明
class Shape {
public:virtual void draw() const = 0;  // 纯虚函数virtual ~Shape() {}  // 虚析构函数,确保派生类析构正确性
};// 派生类实现抽象类
class Circle : public Shape {
public:void draw() const override {// 绘制圆形的代码}
};// 使用抽象类
Shape* shape = new Circle();
shape->draw();
delete shape;
  • 抽象类的作用:
    • 强制实现接口:确保所有派生类都实现了抽象类中定义的纯虚函数。
    • 代码复用:基类可以提供一些通用的实现,派生类可以重写或继承这些实现。
  • 设计原则:
    • 遵循里氏替换原则(Liskov Substitution Principle),确保派生类可以替换其基类。
  • 注意事项:
    • 抽象类通常包含虚析构函数,以确保派生类的析构函数被正确调用。
  • C++11及以后版本:
    • C++11引入了final关键字,可以修饰类或成员函数,表示它们不能被进一步继承或重写。

抽象类是C++面向对象编程中的一个重要概念,它有助于实现代码的模块化和可扩展性。通过使用抽象类,开发者可以定义清晰的接口,并在不同的派生类中实现这些接口的具体行为。

2.C++ 抽象类和纯虚函数的例子

  • 在这个例子中,Shape 是一个抽象类,它定义了一个纯虚函数 getArea。
    • Circle 和 Rectangle 是 Shape 的派生类,它们分别实现了 getArea 函数。
    • 由于 Shape 是抽象类,我们不能直接创建它的实例,但可以创建 Circle 和 Rectangle 的实例。
#include <iostream>// 抽象基类
class Shape {
public:// 纯虚函数,用于计算面积virtual double getArea() const = 0;// 虚析构函数virtual ~Shape() {}
};// 派生类 Circle
class Circle : public Shape {
public:// 构造函数Circle(double radius) : radius(radius) {}// 实现基类的纯虚函数double getArea() const override {return 3.14159 * radius * radius;}private:double radius;
};// 派生类 Rectangle
class Rectangle : public Shape {
public:// 构造函数Rectangle(double width, double height) : width(width), height(height) {}// 实现基类的纯虚函数double getArea() const override {return width * height;}private:double width, height;
};int main() {// 由于 Shape 是抽象类,不能直接实例化// Shape shape; // 错误Circle circle(5.0);Rectangle rectangle(4.0, 6.0);std::cout << "Circle area: " << circle.getArea() << std::endl;std::cout << "Rectangle area: " << rectangle.getArea() << std::endl;return 0;
}

3.abstract重点

  • 纯虚函数使一个类变成抽象类
  • 抽象类类型的指针和引用
  • 如果我们不在派生类中覆盖纯虚函数,那么派生类也会变成抽象类
  • 抽象类可以有构造函数
  • 构造函数不能是虚函数,而析构函数可以是虚析构函数
// 抽象类
class Base  {
public:Base(){ cout << "Constructor: Base" << endl; }virtual ~Base(){ cout << "Destructor : Base" << endl; }virtual void func() = 0;
};class Derived: public Base {
public:Derived(){ cout << "Constructor: Derived" << endl; }~Derived(){ cout << "Destructor : Derived" << endl;}void func(){cout << "In Derived.func()." << endl;}
};

当基类指针指向派生类对象并删除对象时,我们可能希望调用适当的析构函数。
如果析构函数不是虚拟的,则只能调用基类析构函数。


关于作者

  • 微信公众号:WeSiGJ
  • GitHub:https://github.com/wesigj/cplusplusboys
  • CSDN:https://blog.csdn.net/wesigj
  • 微博:
  • -版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
http://www.yayakq.cn/news/319841/

相关文章:

  • 郴州网站推广公司排名wordpress可以做企业管理系统吗
  • 温州网站建设培训学校基础微网站开发价位
  • 拼多多网站建设方案哈尔滨建站的网站网页
  • 淘宝客网站主机淮南发布网
  • 松原做公司网站wordpress怎么建立下载
  • 前端做网站难吗云南网警在线报警
  • 网页制作相关网站wordpress改成自己网站
  • 重庆营销型网站郑州seo博客
  • 广东平台网站建设网站备案有什么坏处
  • 海北州网站建设公司用wordpress二级导航
  • 怎么做淘宝客导购网站推广html网站可以做访问统计吗
  • 免费建立平台网站集美区网站建设
  • 磐安网站建设公司网站建设应走什么会计科目
  • 有色建设网站很多卖假药冒产品用二级域名做网站
  • 外国教程网站有哪些wordpress 编辑index
  • 建设银行境外汇款申请书网站牌子网官网
  • 如何提高景区旅游网站建设网站怎么做架构
  • 合肥做网站费用长沙网站优化外包服务
  • 网站建设终端是什么水果网站源码
  • dedecms企业网站模板购物网站后台订单处理流程
  • 国外免费logo网站html网站成品下载
  • 广州英文网站制作wordpress悬浮联系表
  • 专业商城网站建设多少钱福彩网网站建设方案
  • 回收网站建设谁有永久免费的服务器
  • 网站建设进度表手机微网站怎么制作
  • 杭州招标信息网seowhy教研室
  • 阳江北京网站建设龙泉市建设局网站
  • 网站前置审批类型网站导航规划
  • 做业务 哪个网站比较好域名备案网站服务内容
  • 邯郸专业网站建设建设网站都需要哪些资料