浅谈C++的面向对象

水深无声 2023-09-28 08:22 199阅读 0赞

文章目录

  • 前言
  • 如何理解C++面向对象编程
    • 封装
    • 继承
    • 多态
    • 拓展:虚函数的一点小规则
  • 总结

前言

注:我的笔记风格,可能不会特别官方,不会晦涩难懂,而是以一个初学者能看懂的方式把知识呈现出来,用最简单的语言把抽象的概念表达出来~

经常谈到面向对象这四个字,那么下面以C++为例,谈一下我对面向对象的理解,请往下看~


如何理解C++面向对象编程

看以下三点:

1.c++面向对象编程就是把一切事物都变成一个个对象,用属性和方法来描述对象的信息,比如定义一个猫对象,猫的眼睛、毛发、嘴巴就可以定义为猫对象的属性,猫的叫声和走路就可以定义为猫对象的方法;

2.用对象的方式编程,不仅方便了程序员,也使得代码的可复用性、可维护性变好;

3.c++面向对象的三大特性是封装、继承、多态。

封装

1.c++面向对象三大特性之一,实现对对象的属性和方法的封装。

2.对对象的属性和方法进行封装;

3.对属性和方法进行权限控制:public(类外可访问,类内可访问),private(类内可访问,类外不可访问),protected(类内可访问,类外不可访问)。

继承

1.cpp三大特性之一,可以让派生类继承自基类,实现代码的复用,is a, 可以传递。

2.三种继承方式 public、private、protected:

public:基类的public还是public,基类的protected还是protected,基类的private无法访问;

protected:基类的public是protected,基类的protected还是protected,基类的private无法访问;

private:基类的public是private,基类的protected是private,基类的private无法访问。

多态

1.多态是c++三大特性之一,为了实现,接口复用,一个接口,实现不同的方法。

2.可以分为编译时多态和运行时多态

编译时多态:在编译过程中,就可以实现接口复用,其实是重载,重载就是函数名相同,但是参数不同(个数,类型等);

运行时多态:常规的多态。

3.运行时多态的实现

(1)有继承关系;

(2)子类重写父类虚函数;

(3)父类指针指向子类对象。

拓展:虚函数的一点小规则

(1)静态成员函数,不该设置为虚函数。因为静态成员函数不属于某一个对象,属于整个类;

(2)构造函数,不该设置为虚函数。因为,虚函数指针的初始化是在构造函数中初始化的,实现多态需要得到虚函数指针,从而找到虚函数表,而如果构造函数设置为虚函数,在运行时就得不到想要的虚函数指针;

(3)析构函数,应该设置为虚函数。否则,会造成内存泄漏,只会调用父类析构函数,子类对象无法释放。

总结

本文简单的介绍了一下C++中面向对象的特点和理解,并且提供了虚函数的一点注意事项。

本系列为基础知识分享,日更,有任何问题可以私聊或评论博主哦!
希望给各位找工作和工作中的小伙伴提供一点微博的帮助,如果觉得有帮助,欢迎点赞评论收藏关注~

发表评论

表情:
评论列表 (有 0 条评论,199人围观)

还没有评论,来说两句吧...

相关阅读

    相关 面向对象理解

    什么是面向对象 ? 对比面向过程,是两种不同的问题的角度 面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象)、及各自需要做什么 例如:用洗

    相关 面向对象

    浅谈面向对象 概要:面向对象,顾名思义,面向对象模式中的主体被称为对象(object)。每个对象都是类(class)的实例(instance)。 什么是面向对象

    相关 Java面向对象

    Java的面向对象这里对于初学者来说无疑是一大挑战,从基本的概念到实际操作,上手都不是很容易,在看了很多官方概念资料之后,自己对面向对象更是糊涂。那么这篇文章就有助于你理解什么

    相关 面向对象面向过程思想

    说到面向对象,我们总是和面向过程比较。 这里我们简要说明面向过程: > 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可

    相关 面向对象

    程序能够解决问题的复杂性直接取决于抽象的类型和质量。 对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据(它们给出了该对象的状态)和方法(它们产生的行为),并

    相关 面向对象方法学

    目录 一、面向对象的基本概念 对象、类、实例、消息、方法 二、面向对象的基本特征 封装、继承、多态 三、面向对象的建模 对象模型、动态模型、功能模型 四、面向对象