返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++类与对象基础点有哪些
  • 945
分享到

C++类与对象基础点有哪些

2023-07-02 16:07:02 945人浏览 薄情痞子
摘要

本文小编为大家详细介绍“c++类与对象基础点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++类与对象基础点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。认识类和对象C语言是面向过程的,关注的是过

本文小编为大家详细介绍“c++类与对象基础点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++类与对象基础点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

认识类和对象

C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。

C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成

举一个例子,如果我们要设计一个点餐平台,依照生活中的例子

那么C:商家上架商品,客户点餐,通知商家制作外卖,通知骑手配送,客户吃完点评.....(过程)

而C++:商家、客户、骑手(对象)

从这个地方就衍生出了”类”这个概念。

我们在学习C语言的时候有过创建结构体

struct Student{  char name[20];  int age;  char gender[20];};

而在C++中,我们通常习惯把struct改为class,同时C++和C不同,C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数

class Person{public:void showlnfo(){cout << name << sex << age << endl;}public:char name;char sex;int age;};

而由此我们引出”访问限定符”这个概念。

访问限定符

访问限定符有三个,分别是:

public(公有)

protected(保护)

private(私有)

public修饰的成员在类外可以直接被访问

protected和private修饰的成员在类外不能直接被访问

访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止(最后一个访问限定符作用域到结尾的;为止)

class的默认访问权限为private,struct为public(因为struct要兼容C)

this指针

我们先看一个代码

class Date{public:void Display(){cout << _year << "-" << _month << "-" << _day << endl;}void SetDate(int year, int month, int day){_year = year;_month = month;_day = day;}private:int _year; // 年int _month; // 月int _day; // 日};int main(){Date d1, d2;d1.SetDate(2018, 5, 1);d2.SetDate(2018, 7, 1);d1.Display();d2.Display();return 0;}

这里,我们调用了两次setDate,分别是d1和d2,那么我们怎么知道s1调用SetDate函数

时,该函数是如何知道应该设置s1对象,而不是设置s2对象呢?

这里C++就引入了this指针:即:C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参

数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成

拿上面的例子而言,实际上是这样的

void Display(Date* this)//实际上{cout <<this-> _year << "-" <<this-> _month << "-" <<this-> _day << endl;}
void Display()//你看到的{cout << _year << "-" << _month << "-" << _day << endl;}

这样编译器就自动完成区分了。

这里再列举一下this指针的性质:

this指针的类型:类型* const

只能在“成员函数”的内部使用

this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针。

this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户传递

读到这里,这篇“C++类与对象基础点有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C++类与对象基础点有哪些

本文链接: https://lsjlt.com/news/342961.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++类与对象基础点有哪些
    本文小编为大家详细介绍“C++类与对象基础点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++类与对象基础点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。认识类和对象C语言是面向过程的,关注的是过...
    99+
    2023-07-02
  • C++浅析类与对象基础点
    目录认识类和对象访问限定符this指针认识类和对象 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事...
    99+
    2024-04-02
  • C++浅析类与对象的基础
    目录面向过程和面向对象类的引入访问限定符封装类的作用域类的实例化面向过程和面向对象 类和对象是 C++ 的核心特性 我们之前的C语言就属于面向过程,关注过程,分析求解问题的步骤再通过...
    99+
    2024-04-02
  • JavaScript对象的基础知识点有哪些
    这篇文章给大家分享的是有关JavaScript对象的基础知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 、对象的基础1.1 类型JavaScript有六种主要语言类...
    99+
    2024-04-02
  • C++类与对象的基础知识点详细分析
    目录一、什么是类和对象呢1、类的引入2、类的定义3、类的访问限定符4、类对象的储存方式5、this指针的特性二、类的六个默认成员函数详解1、构造函数2、析构函数一、什么是类和对象呢 ...
    99+
    2023-02-13
    C++类与对象知识点 C++类与对象关系
  • C++类和对象基础详解
    目录一、类和对象的基本概念结构化程序设计面向对象的程序设计使用类的成员变量和成员函数二、类和对象基础 类成员的可访问范围构造函数(constructor)基本概念拷贝(复制)构造函数...
    99+
    2024-04-02
  • C++的基础知识点有哪些
    这篇文章主要介绍“C++的基础知识点有哪些”,在日常操作中,相信很多人在C++的基础知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++的基础知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • Java类与对象超基础讲解
    目录什么是面向对象面向过程与面向对象类与对象的使用类与对象的使用与说明对象的初始化this的使用构造方法this可以调用本类的构造方法什么是面向对象 Java语言是一个纯面向对象的语...
    99+
    2024-04-02
  • redis中的常用基础对象有哪些
    这篇文章主要介绍redis中的常用基础对象有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一:前言redis中有几种常用的基础对象,如string、hash、list、set、z...
    99+
    2024-04-02
  • C++模板基础知识点有哪些
    这篇文章主要讲解了“C++模板基础知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++模板基础知识点有哪些”吧!引入我们对交换函数Swap已经非常熟悉了,但是我们经常会遇到这样的...
    99+
    2023-06-25
  • python基础之面对对象基础类和对象的概念
    简称oop 复习 面向对象编程,简称oop [object oriented programming] 是一种python的编程思想 面...
    99+
    2024-04-02
  • Java中类与对象的相关知识点有哪些
    这篇文章给大家介绍Java中类与对象的相关知识点有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、面向过程与面向对象的理解C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。JAVA...
    99+
    2023-06-25
  • Java基础——类和对象
    目录 一、类和对象的基本概念 二、类与对象的定义与使用 1.创建类的语法: 2. 创建具体的对象:  3.范例(创建一个Person 类的对象)  三、static关键字   (一)static修饰属性(类属性、类变量) (二)static...
    99+
    2023-10-05
    java
  • R语言基本对象类型有哪些
    这篇文章主要介绍了R语言基本对象类型有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基本向量包含单类型对象(例如整数,浮点数,复数,文本,逻辑值或者原始型数据)的向量复合...
    99+
    2023-06-14
  • java中Class类的基础知识点有哪些
    这篇文章将为大家详细讲解有关java中Class类的基础知识点有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、说明Class本身也是一个类。Class对象只能由系统确定。JVM中只有一个Class...
    99+
    2023-06-15
  • C语言基础的类型转换有哪些
    小编给大家分享一下C语言基础的类型转换有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!类型转换数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题。转换包括隐式类型转换和强制类型转换。类型转换的原则...
    99+
    2023-06-25
  • javascript对象有哪些特点
    这篇文章主要讲解了“javascript对象有哪些特点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript对象有哪些特点”吧! ...
    99+
    2024-04-02
  • javascript对象类型有哪些
    这篇文章主要介绍“javascript对象类型有哪些”,在日常操作中,相信很多人在javascript对象类型有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javasc...
    99+
    2024-04-02
  • Scala类和对象有哪些
    这篇文章主要讲解了“Scala类和对象有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Scala类和对象有哪些”吧!scala中的类不声明为public,一个Scala源文件中可以有多个...
    99+
    2023-06-02
  • C++类与对象及构造函数析构函数基础详解
    目录C++类与对象类的定义对象的创建构造函数和析构函数访问修饰符继承多态成员变量与成员方法总结C++类与对象 C++是一门面向对象的编程语言。在C++中,我们可以利用类来创建对象,...
    99+
    2023-05-16
    C++类对象函数 c++ 构造析构函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作