【带头学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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小白Erike.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值