引言
本篇C++学习笔记将接上一篇的笔记继续整理,将上一篇笔记未介绍完成的关键字等知识点补全,并且整理的C++结构体的相关知识。
一、namespace名字空间
namespace + 标识名{
//在这个域中声明或定义相应的变量函数或者类
}
例如:
namespace A{
int a = 100;
void showInfo()
{
cout << “欢迎关注争做图书馆扫地僧的小白” << endl;
}
}
namesapac B{
int a = 200;
void showInfo()
{
cout << “喜欢本篇文章的请点个赞” << endl;
}
}
上述两段代码定义的变量和函数的命名是一样的,但是名字空间的域名是不一样的
int main()
{
//使用上述代码的名字空间作用域的变量和函数
//::是域名解析符
cout << A::a << endl;
A::showInfo();
cout << B::a << endl;
B::showInfo();
}
名字空间还可以嵌套名字空间,举个例子:
namespace A
{
int a = 100;
void showInnfo()
{
cout << “欢迎关注争做图书馆扫地僧的小白” << endl;
}
namespace B
{
int a = 99;
}
}
当使用cout << A::B::a << endl语句,访问的是名字空间中A的B中的a变量,即打印的是99
二、using关键字
//1.using + namespace + 名字空间的标识名:把这个名字空间的所有变量或函数的标识导入
//using namespace A;
//2.using + 指定名字空间 :: 指定标识名 将指定的标识名导入
using A :: a
cout << A::a << endl;
三、C++中bool类型
在C++中bool类型有着两种关键字,一个是true,另一个是false。
四、C++中的字符串类型string
在c语言中string字符串类型是需要使用者注意'\0'的问题以及存储空间等相关知识
4.1字符串的拼接
string str1 = "hello";
string str2 = ", world";
cout << str1 + str2 << endl;
//拼接字符串并将拼接好的字符串赋给目的字符串使用append
str1.append(str2);
cout << str1 << endl;
4.2数字字符串直接字转成整型或浮点型数据
string str = "1111.11";
float i = stof(str);
cout << i+1 << endl;
五、C++结构体
//C++结构体
struct Stu
{
public:
string name;
int age;
void showInfo()
{
cout << “欢迎关注争做图书馆扫地僧的小白” << endl;
}
};
//C++结构体默认public,除此之外还有着private
//public是公开的,private是私有的。
//public定义的内容可以在外部修改,而private定义的内容不能在外部修改
//当采用C++定义结构体类型,内部有多个对象的时候,cout可以连续的赋值,例如:
cout << “姓名:” << stu.name << “,年龄:” << stu.age << endl;
六、结构体的大小
1.C++结构体与结构体中的非静态属性相关,并遵从字节对齐的原则
2.结构体的成员函数与结构体大小不相关
3.空的结构体在定义对象时,会占一个字节