C++ 课堂见闻

Table of Contents

老师锐评生物化学学科欠缺逻辑

关于 C++ 变量初值

讨论的当然是没有显式初始化的情况。

结论:简单来说,函数体外(包括 main 函数内)的变量会被初始化为 0,否则就是 undefined,数值不定。

“要是你们看不懂的话,应该考虑转专业。”

关于正整型范围

以 int 为例,为什么最大值为 2147483647 ?

因为 0 是用 0000 0000 0000 0000 表示的,没必要有 +0 和 -0,所以规定 1000 0000 0000 0000 为最小值。

关于比较器

例:sort(a, a + n, greater<int>() );

当然,首先要include<functional>

关于命名空间

见此处

例:

namespace Markdown{
    void add(){ ... }
    void edit(){ ... }
}

namespace Pdf{
    void add(){ ... }
    void edit(){ ... }
}

可以这样调用:Markdown::edit(),调用某一 namespace 中的成员变量或函数。

可以这样写:using namespace Markdown,以自动使用该namespace。在一个程序中可以写多个该语句。

可以这样写:using std::cout,以直接使用 cout

一个 namespace 的各个组成部分可以分散在多个文件中。如果 namespace 中的某个组成部分需要请求定义在另一个文件中的名称,则仍然需要声明该名称。所写的 namespace 可以是定义一个新的命名空间,也可以是为已有的命名空间增加新的元素。

命名空间可以嵌套。

全局变量 a 表达为 ::a,用于当有同名的局部变量时来区别两者。

命名空间中有重名的内容时,不能一起写 using,会导致编译器不知道使用哪个。

Share