C++|类和对象

embedded/2025/3/17 8:27:22/

类是可以自己定义的一种自定义数据类型,是对某一类对象的抽象,对象是类的一个实例。

1.类

class 类名//一般首字母大写
{private:成员属性或成员函数protected:成员属性或成员函数public:成员属性或成员函数
};//

public(公有类型)、private(私有类型)和protected(保护类型)关键字称为访问权限符,它规定了类中成员的访问属性,默认时为私有的(private)。成员属性代表对象的属性;成员函数实现对象的行为。

1.1类的定义

public 声明成员为公有成员。完全公开。都可以访问。

private声明成员为私有成员。该级别的成员只能被它所在类中的成员函数和该类的友元函数访问。

protected声明成员为保护成员。具有这个访问控制级别的成员,外界是无法直接访问的。它只能被它所在类及从该类派生的子类的成员函数友元函数访问。

1.2成员函数

在使用类的成员函数时,要注意它的访问权限(它能否被访问),以及它的作用域(类函数能在什么范围内被访问)。

类的成员函数定义:代码较少的函数可以直接在类内定义,自动成内联函数;代码较多的函数可在类内函数声明,在类外函数定义。在定义函数时,必须用作用域符“::”表明函数所属的类。

返回类型 类名::函数名(参数列表)
{//函数体
}

1.3内联函数

内联函数是一种在编译时将函数体的代码直接插入到调用该函数的地方,而不是像普通函数那样进行函数调用的机制。在 C++ 中,使用inline关键字来声明内联函数,但编译器不一定满足这种要求。对于内联函数,编译器将用函数代码替换函数调用,这样程序就无需跳到另一个函数执行,执行完后再跳回来。因此内联函数的运行速度比常规函数稍快。

类中的内联函数:

内联函数主要的应用场景就是类。如果类的成员函数非常简单(不超过三行代码),可以将成员函数定义在类中,这时该函数自动成为内联函数,如果成员函数较复杂(超过三行),则在类中声明成员函数,而在类外定义。

1.4成员函数重载

在同一个类里,有两个以上的函数具有相同的函数名,这几个成员函数构成函数重载。

2.对象

2.1对象的创建

定义了类,就相当于定义了一个数据类型,可以定义变量(即对象),数组和指针等。

对象的定义格式如下:
        类名 对象名;

2.2对象通过 "." 访问其成员变量和成员函数

对象名.成员变量 //访问对象的成员变量.对象名.成员函数 //访问对象的成员函数.

2.3对象的指针通过 "->" 访问其成员变量和成员函数

对象的指针->成员变量对象的指针->成员函数

2.4对象的引用

对象定义一个引用变量,它们共用同一段存储单元,实际上它们是同一个对象。

对象定义引用:

        类型 &引用变量名=对象名;


http://www.ppmy.cn/embedded/173296.html

相关文章

[从零开始学SSM] IOC/DI案例入门

IoC入门案例 思路分析 这里我们使用xml配置(老旧的模式,在spring中创建一个application.xml文件) bean通常是接口的实现类 了解就可以了!!! 在非Spring环境中运行 在Spring环境中运行 第一步:导入Spring坐标 第二步&#xff1…

地基Prompt提示常用方式

思维链(Chain of Thought, CoT)​ 思维链(Chain of Thought, CoT)​ 是指让 AI 在回答问题时,像人类一样展示出一步步的推理过程,而不仅仅是直接给出最终答案。这种方法的目的是让答案更清晰、可信&#…

图片加载框架Glide与Picasso原理剖析

图片加载框架Glide与Picasso原理剖析 一、前言 图片加载是Android应用开发中的一个重要环节,良好的图片加载机制可以提升应用性能和用户体验。Glide和Picasso是目前最流行的两个图片加载框架,本文将深入分析这两个框架的核心原理和实现机制。 二、图片加载基础 2.1 图片加…

【C++初阶】模板初阶

前言 在我们之前的学习中我们要实现一个交换函数,会这么写 //void Swap(int* x,int* y) void Swap(int& x,int& y) {int tmp x;x y;y tmp; } 这个函数可以实现int类型的变量进行交换,但要实现其他类型,如:double、f…

TCP/IP协议中三次握手(Three-way Handshake)与四次挥手(Four-way Wave)

TCP/IP协议中三次握手(Three-way Handshake)与四次挥手(Four-way Wave) 一、TCP三次握手(Three-way Handshake)二、TCP四次挥手(Four-way Wave)三、常见问题解答总结为什么三次握手不…

【零基础入门unity游戏开发——进阶篇】Unity Microphone类处理麦克风相关信息,录制音频并实时处理或保存录制的音频数据

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

AI+视频监控电力巡检:EasyCVR视频中台方案如何赋能电力行业智能化转型

随着电力行业的快速发展,电力设施的安全性、稳定性和运维效率变得至关重要。传统视频监控系统在实时性、智能化及多系统协同等方面面临严峻挑战。EasyCVR视频中台解决方案作为一种先进的技术手段,在电力行业中得到了广泛应用,为电力设施的监控…

[网络] socket编程--udp_echo_server

文章目录 1. udp_echo_server是个什么东西?2. 初步文件构建.3. nocopy服务器防止被拷贝4. 创建套接字5. sockfd bind ip & port6. start 开始服务7. 编码客户端8. 服务端ip应该绑0号pi.9. 加入日志10. 封装ip port类11. reference codeUdpServer.hppUdpServerMain.ccUdpC…