目录
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字符类型。
-
类型:
std::string
是一个类类型,属于标准 C++ 库中的类,用于包装和操作字符串。而char
是字符类型,可以表示单个字符。 -
复杂性:
std::string
提供了许多成员函数和操作符重载,使得对字符串的操作和处理更加方便和灵活。它支持动态修改字符串的长度、连接、查找、比较等操作。而char
只能表示一个字符,没有内置的字符串操作功能。 -
存储方式:
std::string
内部使用动态分配的内存来存储字符串,可以动态调整字符串的长度。而char
只能使用字符数组或指针的形式来存储字符串,长度固定。 -
字符串表示:
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。