0

0

C++ 自身函数详解及应用:对象、继承与多态

WBOY

WBOY

发布时间:2024-08-28 18:39:03

|

895人浏览过

|

来源于php中文网

原创

面向对象编程(oop)以对象和类为中心,其中类定义对象的属性和方法,而对象是类的实例。oop 支持继承,允许派生类继承基类的属性和方法。多态性允许派生类对象以与基类对象相同的方式进行交互,这通过 virtual 关键字实现了。在示例中,shape 是一个抽象类,而 circle 和 rectangle 是派生类,它们实现了 getarea() 方法以计算各自的面积。

C++ 自身函数详解及应用:对象、继承与多态

C++ 自身函数详解及应用:对象、继承与多态

面向对象编程(OOP)

OOP 是一种编程范式,它以对象和类为中心,这些对象持有一组数据(属性)并定义了一组操作(方法)来操作这些数据。

立即学习C++免费学习笔记(深入)”;

类是对象蓝图,它定义了对象的属性和方法。语法如下:

class ClassName {
  public:
    // 公共成员
  private:
    // 私有成员
};

对象

EduPro
EduPro

EduPro - 留学行业的AI工具箱

下载

对象是类的实例,它包含每个属性的一个副本。要创建对象,请使用 new 运算符:

ClassName* object = new ClassName();

继承

继承允许派生类从基类继承属性和方法。派生类可以访问基类的所有公共和受保护的成员。语法如下:

class DerivedClassName : public BaseClassName {
  // 派生类成员
};

多态

多态允许派生类对象以与它们的基类对象相同的方式进行交互。这使您可以在运行时根据对象的实际类调用适当的方法。通过 virtual 关键字实现多态:

class BaseClassName {
  public:
    virtual void print() {
      // 基类方法
    }
};

class DerivedClassName : public BaseClassName {
  public:
    virtual void print() {
      // 派生类方法
    }
};

实战案例

考虑以下示例,创建一个形状类及其圆形和矩形派生类:

class Shape {
public:
  virtual double getArea() = 0; // 抽象方法,必须在派生类中实现
};

class Circle : public Shape {
public:
  double radius;
  double getArea() override { return 3.14 * radius * radius; }
};

class Rectangle : public Shape {
public:
  double length, width;
  double getArea() override { return length * width; }
};

int main() {
  Circle circle;
  circle.radius = 5;
  cout << "Circle area: " << circle.getArea() << endl; // 输出圆面积

  Rectangle rectangle;
  rectangle.length = 10;
  rectangle.width = 5;
  cout << "Rectangle area: " << rectangle.getArea() << endl; // 输出矩形面积

  return 0;
}

相关专题

更多
java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1435

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

224

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

85

2025.10.17

go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

54

2025.09.05

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

46

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

15

2025.11.27

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.4万人学习

Django 教程
Django 教程

共28课时 | 2.6万人学习

Excel 教程
Excel 教程

共162课时 | 10.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号