在c++中最重要的语法:类。第一章,什么是类,如何认识类,怎么使用类?

这一篇,简单介绍类的基本认知,和细节。

在c++中,我们很多时间都要和类去打交道。它也是c++相较于c新增的一个比较好用的语法。

类的定义如下:

class A{private:成员函数或者成员属性public:成员函数或者成员属性protected:成员函数或者成员属性
};
A是类名,自己起名字

这里强调三点:

1、class是声明类的关键字。class后面跟的类名首字母一定要大写

2、类中包括成员属性和成员函数。成员属性代表对象的属性,成员函数代表实现对象的行为

3、private,public,protected都是类中的关键字,被称为访问限定符,它规定了类中成员的访问属性,这三个关键字可以已任意顺序出现,也可以多次出现。如果什么都没写,则默认为私有(private)。

我们接下来先讲解私有(private)和公有(public),保护(protected)以后分析。

我们定义一个学生类:

class Student{private://访问权限:私有成员string name;//私有,表示名字string sex;//私有,表示性别public://访问权限:公有成员Student();//行为,成员函数的原型声明,表示构造函数void show();//行为,成员函数的原型声明,表示打印学生信息void input();//行为,成员函数的原型声明,表示输入学生信息
};//这里记得加上;表示类结束。

首先,是public

class A{public:void input();
};void input()
{//这个函数和Student,A没有关系cout << "input()" << endl;
}

上面简单做个声明,类内函数和类外函数不一样!!

首先哈,public,是公有的,谁都可以通过成员去访问它

private 私有

相比公有,私有成员不能在类外进行访问,只能在类内进行访问,比如在main函数中将无法直接进行访问,在其他定义的函数也无法直接访问。总结:除了类内,其他地方无法直接访问私有成员。

当然,我们可以在公有里面提供公有方式,通过这个方式间接访问私有成员。这个是允许的。


成员函数的实现方法

成员函数也是函数的一种,它们与一般函数的区别在于,它属于一个特定的类,是类中的成员。

在使用成员函数的时候,要注意它的访问权限是否允许访问。

函数定义一般有两种情况:

1、直接在类内定义一个函数,一般情况是函数篇幅较为短小。

2、在类内声明函数,但是函数定义写在类外在,这种情况大多数是代码较为长的时候,但是定义的时候,我们一定要说明这个函数是类内的函数。所以此时我们需要使用类内限定符::来证明,这个函数是类内的函数而不是类外的函数

成员函数重载

成员函数重载和之前所说过的正常函数重载一样,只需要看参数列表是否不同即可。

参数列表:有参数类型和参数的个数。


每日金句:

        寒风呼啸万物寂,枯树枝头一点红。 枯萎殆尽,剩下的便是生机。

                                                                                                                        ————雀儿

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2774748.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】友元、初始化列表、内部类、static修饰成员详解

文章目录 前言1. 构造函数不为人知的那些事1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字 2. static成员2.1 概念2.2 特性2.3 小总结 3. C11 成员变量初始化新用法4. 友元4.1 友元函数4.2 友元类 5. 内部类5.1概念及特性 总结 前言 提示&#xff1a;这里可以添加本文要…

IntelliJ IDEA 2023.3发布,AI 助手出世,新特性杀麻了!!

目录 关键亮点 对 Java 21 功能的完全支持 调试器中的 Run to Cursor&#xff08;运行到光标)嵌入选项 带有编辑操作的浮动工具栏 用户体验优化 Default&#xff08;默认&#xff09;工具窗口布局选项 默认颜色编码编辑器标签页 适用于 macOS 的新产品图标 Speed Sear…

【JavaScript 漫游】【011】ES5 规范中 Array 对象方法汇总

文章简介 本文为【JavaScript 漫游】专栏的第 011 篇文章&#xff0c;记录的内容包含了 ES5 规范中Array 对象的所有方法。 Array()Array.isArray()valueOf()、toString()push()、pop()shift()、unshift()join()concat()reverse()slice()splice()sort()map()forEach()filter(…

携程网首页案例制作(移动端)

技术选型 方案&#xff1a;采用单独制作移动页面方案 技术&#xff1a;布局采用flex布局 body样式 通常要设置最大宽度&#xff0c;最小宽度&#xff0c;水平居中&#xff0c;字体设置&#xff0c;背景颜色以及相关初始化 body {max-width: 540px;min-width: 320px;margin…

Spring Boot 笔记 002 整合mybatis做数据库读取

概念 MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff08;Plain Old Java Objec…

MySQL之体系结构

华子目录 MySQL简介MySQL的特性MySQL版本MySQL常见版本 数据库排名网站MySQL结构体系查看最大连接数查询缓存配置情况 一条SQL语句执行流程 MySQL简介 MySQL是一个小型关系数据库管理系统&#xff0c;开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年…

RNN(神经网络)

目录 介绍&#xff1a; 数据&#xff1a; 模型&#xff1a; 预测&#xff1a; 介绍&#xff1a; RNN&#xff0c;全称为循环神经网络&#xff08;Recurrent Neural Network&#xff09;&#xff0c;是一种深度学习模型&#xff0c;它主要用于处理和分析序列数据。与传统…

STM32启动过程浅析

MAP文件浅析 MDK编译过程文件&#xff08;11种&#xff09; .o&#xff1a;可重定向对象文件&#xff0c;每个.c、.s文件编译后都生成一个.o文件.axf&#xff1a;可执行对象文件&#xff0c;由.o文件链接生成&#xff0c;仿真的时候需要用到此文件.hex&#xff1a;INTEL Hex格…

[算法前沿]--058- LangChain 构建 LLM 应用详细教程

什么是LLMs? LLM,即大型语言模型,是指经过大量文本数据训练的最先进的语言模型。它利用深度学习技术来理解和生成类似人类的文本,使其成为各种应用程序的强大工具,例如文本完成、语言翻译、情感分析等。LLMs最著名的例子之一是 OpenAI 的 GPT-3,它因其语言生成能力而受到…

HTTP2: springboot启用http2

springboot http2应用条件 使用servlet 4.0jdk 9tomcat 9 springboot 开启h2 创建证书 创建脚本&#xff1a; keytool -genkey -keyalg RSA -alias wisely -keystore keystore.jks -storepass pass1234 -validity 4000 -keysize 2048添加springboot配置 server:port: 808…

Sentinel 源码分析

Sentinel源码分析 项目源码 1.Sentinel的基本概念 Sentinel实现限流、隔离、降级、熔断等功能&#xff0c;本质要做的就是两件事情&#xff1a; 统计数据&#xff1a;统计某个资源的访问数据&#xff08;QPS、RT等信息&#xff09;规则判断&#xff1a;判断限流规则、隔离规…

NGINX upstream、stream、四/七层负载均衡以及案例示例

文章目录 前言1. 四/七层负载均衡1.1 开放式系统互联模型 —— OSI1.2 四/七层负载均衡 2. Nginx七层负载均衡2.1 upstream指令2.2 server指令和负载均衡状态与策略2.2.1 负载均衡状态2.2.2 负载均衡策略 2.3 案例 3. Nginx四层负载均衡的指令3.1 stream3.2 upstream指令3.3 四…

油猴脚本开发总结

一、在线安装 打开浏览器&#xff0c;点击右上角“ ”&#xff0c;在弹出的菜单上点击“拓展”跳转到下面这个页面&#xff1a; 点击"获取Microsoft Edge拓展"&#xff1a; 然后搜索框输入“tampermonkey”&#xff1a; 获取最上面这个黑绿色拓展&#xff1a; 二、…

vulnhub中Beelzebub靶机

渗透思路 一.信息收集1.网段探测2.端口探测3.常见漏洞扫描4.目录扫描5.web页面分析 二.渗透继续目录扫描ssh连接提权提权&#xff0c;flag 一.信息收集 1.网段探测 ┌──(root㉿kali)-[~] └─# nmap -Pn 192.168.0.0/24 --min-rate 10000 Starting …

java实现栈功能

1.使用数组方式 public static void main(String[] args) throws Exception {BufferedReader br new BufferedReader(new InputStreamReader(System.in));int operateNum Integer.parseInt(br.readLine());//操作次数String inputInfo;//输入信息StringBuilder outputSb new…

吉他学习:右手拨弦方法,右手拨弦训练 左手按弦方法

第六课 右手拨弦方法https://m.lizhiweike.com/lecture2/29362775 第七课 右手拨弦训练https://m.lizhiweike.com/lecture2/29362708

SDL库的下载与配置(Visual Studio )2024/2/4更新

一.SDL的下载 下载链接 二.SDL的环境配置 解压以后放在中文路径下 不会添加环境变量自行搜索&#xff08;比较简单网上教程很多&#xff09; 下面进行编译器的配置 复制这段内容 x64\SDL2main.lib x64\SDL2.lib将这段代码放进去运行一下 #include <SDL.h>int main(int…

07-使用Package、Crates、Modules管理项目

上一篇&#xff1a;06-枚举和模式匹配 当你编写大型程序时&#xff0c;组织代码将变得越来越重要。通过对相关功能进行分组并将具有不同功能的代码分开&#xff0c;您可以明确在哪里可以找到实现特定功能的代码&#xff0c;以及在哪里可以改变功能的工作方式。 到目前为止&…

量子计算+材料建模的理论效率提升100000倍!英国公司Phasecraft取得算法突破

编辑丨慕一 编译/排版丨沛贤 深度好文&#xff1a;1250字丨6分钟阅读 在量子计算近期可能的商业应用中&#xff0c;材料建模最有前景的领域之一。在这个领域的应用可能只需要几千个量子比特&#xff0c;而不像其他应用需要数百万个量子比特。目前该领域是量子计算的研究热点…

大规模块存储 EC 系统构建

本文整理自 2023 年 7 月 DataFunSummit 2023 数据基础架构峰会——大规模存储架构分论坛的同名主题分享。 非常欢迎大家的到来&#xff0c;今天由我来分享百度智能云块存储 EC 系统的构建。块存储系统在百度智能云的产品名叫 CDS&#xff0c;底层 EC 系统由 Aries 承担。 今天…