本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版后一修订版两侧同时换到之后的修订记录 | ||
cs:programming:cpp:courses:cpp_basic_deep:chpt_1 [2024/04/14 06:42] – [std 命名空间] codinghare | cs:programming:cpp:courses:cpp_basic_deep:chpt_1 [2024/04/14 11:50] – [std 命名空间] codinghare | ||
---|---|---|---|
行 85: | 行 85: | ||
缓冲区是内存中的一个区域,用于优化读写的速度。缓冲区满了以后,会一次性将内容输出。但问题在于,程序没有正常结束时,缓冲区中的内容会丢失。如果为了查找程序的 Bug,那么这部分内容是需要保留的。这种情况下,需要立即刷新缓冲区。 | 缓冲区是内存中的一个区域,用于优化读写的速度。缓冲区满了以后,会一次性将内容输出。但问题在于,程序没有正常结束时,缓冲区中的内容会丢失。如果为了查找程序的 Bug,那么这部分内容是需要保留的。这种情况下,需要立即刷新缓冲区。 | ||
</ | </ | ||
- | ==std 命名空间== | + | ===命名空间=== |
命名空间的存在是为了防止命名冲突。多人开发的过程中很可能会存在同名函数,放在一起可能会存在调用的冲突。这种情况下可以选择将其分置于不同的命名空间内: | 命名空间的存在是为了防止命名冲突。多人开发的过程中很可能会存在同名函数,放在一起可能会存在调用的冲突。这种情况下可以选择将其分置于不同的命名空间内: | ||
<code cpp> | <code cpp> | ||
行 118: | 行 118: | ||
} | } | ||
</ | </ | ||
- | * '' | + | * '' |
- | // call | + | <code cpp> |
- | int main(int argc, char const *argv[]) | + | using namespace NS1; |
- | { | + | fun(); |
- | | + | </ |
- | fun(); | + | |
- | } | + | |
<code bash> | <code bash> | ||
# output | # output | ||
行 133: | 行 131: | ||
</ | </ | ||
<WRAP center round box 100%> | <WRAP center round box 100%> | ||
- | 上面的操作 | + | * 如果都定义了 '' |
+ | * '' | ||
</ | </ | ||
+ | * 名字空间别名:使用别名代替完整的命名空间名进行调用: | ||
+ | <code cpp> | ||
+ | namespace n = NS1; | ||
+ | n::fun(); | ||
+ | </ | ||
+ | ==std 命名空间== | ||
+ | * std 命名空间是 C++ 标准库的命名空间,用法与上述的命名空间用法相同。 | ||
+ | * name mangling:C++ 会为不同命名空间下的相同 name 进行变化,为链接使用: | ||
+ | <code bash> | ||
+ | # checking the mangling data | ||
+ | nm main.o - o | ||
+ | # demangling,查看 mangling 之前的原始数据 | ||
+ | nm main.o - o | c++filt -t | ||
+ | </ |