【带头学C++】----- 八、C++面向对象编程 ---- 8.5 struct结构体类型增强使用说明

目录

 8.5 struct结构体类型增强使用说明

8.5.1 C++结构体可以定义成员函数

8.5.2 c++中定义结构体变量可以不加struct关键字

8.6 bool布尔类型关键字


 8.5 struct结构体类型增强使用说明

     第六章对结构体的使用、内存对齐以及数组、深拷贝和浅拷贝进行了一个详细的说明,(复习请点击这里跳转到第六章。)

     C语言中定义结构体变量需要加上strut关键字,C++不需要。C语言中的结构体只能定义成员变量,不能定义成员函数。C++即可以定义成员变量,也可以定义成员函数。

8.5.1 C++结构体可以定义成员函数

struct student {std::string mName;int mAge;void setName(std::string name) {mName = name;}void setAge(int age) {mAge = age;}void showStudent() {cout << "Name: " << mName.c_str() << " Age: " << mAge << endl;}
};

注:

1.添加#include <string> 引入string文件库

2.string类型在使用cout的时候,需要使用  " .c_str() " 转换成c语言string风格,C++可以不加头文件直接输出char字符类型。

  1. 类型:std::string 是一个类类型,属于标准 C++ 库中的类,用于包装和操作字符串。而 char 是字符类型,可以表示单个字符。

  2. 复杂性:std::string 提供了许多成员函数和操作符重载,使得对字符串的操作和处理更加方便和灵活。它支持动态修改字符串的长度、连接、查找、比较等操作。而 char 只能表示一个字符,没有内置的字符串操作功能。

  3. 存储方式:std::string 内部使用动态分配的内存来存储字符串,可以动态调整字符串的长度。而 char 只能使用字符数组或指针的形式来存储字符串,长度固定。

  4. 字符串表示:std::string 使用明确的字符串结尾标志来表示字符串的结束,不需要通过计数器或特定字符来表示字符串的长度或结尾。而 char 字符串通常使用以 null 字符 ('\0') 结尾的字符数组表示字符串的结束。

     总的来说,std::string 提供了更多的功能和便利性,能够更方便地处理和操作字符串。而 char 则更适合用于表示单个字符或简单的字符操作。在 C++ 中,std::string 更推荐使用,除非你有特定需要或与 C 语言进行交互。

8.5.2 c++中定义结构体变量可以不加struct关键字

8.6 bool布尔类型关键字

bool 是用于表示布尔类型的关键字,它只有两个可能的值:true 和 false

布尔类型代表了逻辑的真和假,用于处理条件和判断。在条件语句(例如 if 语句和循环语句)中,你可以使用布尔类型进行判断并根据判断结果执行不同的代码块。

在 C++ 中,你可以使用 bool 类型来声明变量,并进行布尔值的存储和计算。例如:

bool isValid = true;
bool isHappy = false;

在上述例子中,isValid 的值是 true(真,类似1,有,对的,是真的)isHappy 的值是 false(假,类似0,无,是假的,不对的) 实际上就是真或假、有或无、是非对错的关系。

还可以使用逻辑运算符(例如 &&|| 和 !)来进行布尔值的操作。例如:

bool result1 = true && false;  // false
bool result2 = true || false;  // true
bool result3 = !true;         // false

在上述例子中,&& 表示逻辑与操作,当所有操作数都为 true 时,结果为 true,否则结果为 false|| 表示逻辑或操作,当至少一个操作数为 true 时,结果为 true,否则结果为 false! 表示逻辑非操作,它会取反操作数的值。

bool类型占1个字节大小,因为只表示一个0或者1。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis队列stream,Redis多线程详解

Redis 目前最新版本为 Redis-6.2.6 &#xff0c;会以 CentOS7 下 Redis-6.2.4 版本进行讲解。 下载地址&#xff1a; https://redis.io/download 安装运行 Redis 很简单&#xff0c;在 Linux 下执行上面的 4 条命令即可 &#xff0c;同时前面的 课程已经有完整的视…

方差分析汇总

一文整理了方差分析的全部内容&#xff0c;包括方差分析的定义&#xff08;基本思想、检验统计量的计算、前提条件&#xff09;、方差分析分类&#xff08;单因素、双因素、多因素、事后多重比较、协方差分析、重复测量方差分析&#xff09;、方差分析流程&#xff08;数据格式…

HTTP/3 为什么正迅速崛起

超文本传输协议&#xff08;HTTP&#xff09;作为互联网的基石&#xff0c;一直在网页加载、视频流传输、应用获取数据等方方面面发挥重要作用。 去年&#xff0c;负责定义互联网技术的互联网工程任务组&#xff08;IETF&#xff09;将该协议的最新版本 HTTP/3 定为标准。在此…

大模型训练为什么用A100不用4090

这是一个好问题。先说结论&#xff0c;大模型的训练用 4090 是不行的&#xff0c;但推理&#xff08;inference/serving&#xff09;用 4090 不仅可行&#xff0c;在性价比上还能比 H100 稍高。4090 如果极致优化&#xff0c;性价比甚至可以达到 H100 的 2 倍。 事实上&#x…

如何控制Spring工厂创建对象的次数?详解Spring对象的声明周期!

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

SPSS生存分析:寿命表分析

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

15.spring源码解析-invokeBeanFactoryPostProcessors

BeanFactoryPostProcessor接口允许我们在bean正是初始化之前改变其值。此接口只有一个方法: void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory);有两种方式可以向Spring添加此对象: 通过代码的方式: context.addBeanFactoryPostProcessor 通过xml…

天鹅湖国家旅游度假区 | 展柜OLED透明屏:创新展示提升互动体验

天鹅湖国家旅游度假区 | 展柜OLED透明屏 产品&#xff1a;一块55寸OLED透明屏嵌入玻璃安装 应用场景&#xff1a;用在天鹅湖国家旅游度假区——三门峡城市文化客厅展馆中的一个透明展示柜&#xff0c;用一块55寸OLED透明屏嵌入展示柜的玻璃&#xff0c;让观众即可以看到展柜里…

【RTP】5:从network收到rtp包到组帧之间的数据传递

m79 代码。从网络中收到rtp、rtcp 后交给call 进行处理这是因为call 具有PacketReceiver 的能力。收到的包是一个 :CopyOnWriteBuffer 类型:rtc::CopyOnWriteBuffer packetclass Call PacketReceiver 准备delivery包:返回delivery结果:}成功、包错误、ssrc未知 D:\zhb-dev\…

求和(打表题)

题目 打个表发现当 n 时答案为 p &#xff0c;否则为 1 &#xff0c;然后套板子。 #include <iostream> #include <algorithm> #include <vector> #include <cstring> #include <cmath>using namespace std;#define int long long using i64 …

Docker+Anaconda+CUDA+cuDNN

一、导语 因为要复现文献的需求和实验室里师兄想要给我提升能力的多方面因素在一起&#xff0c;所以学习并实现了相关安装。在这里做一个记录&#xff0c;方便日后查看&#xff0c;如果能给其他同学带来便捷就更好了。 在这篇文章中&#xff0c;我的目标是搭建一个可以使用Py…

【运维】hive 高可用详解: Hive MetaStore HA、hive server HA原理详解;hive高可用实现

文章目录 一. hive高可用原理说明1. Hive MetaStore HA2. hive server HA 二. hive高可用实现1. 配置2. beeline链接测试3. zookeeper相关操作 一. hive高可用原理说明 1. Hive MetaStore HA Hive元数据存储在MetaStore中&#xff0c;包括表的定义、分区、表的属性等信息。 hi…