C++语言基础
一、关于初始化
1、对于内置类型的变量,在函数外定义的变量自动初始化,在函数内定义的变量如果未提供初始化式,则是未初始化;
2、对于类类型的变量,不管在函数外还是函数内,都将使用默认构造函数进行初始化,类必须提供不带参数的默认构造函数,如果没提供,编译器将自动构造一个,如果类提供了带参数的构造函数,则编译器将不自动的构建默认构造函数,此时用户必须自己定义一个,否则隐式初始化将出错,只能显式初始化。
二、关于const变量与非const变量的作用域
1、全局作用域的非const变量的作用域为全局,在整个程序的其他地方都可以访问,在访问的地方用extern声明;
2、全局作用域const变量,只存在与本文件,不能被其他文件访问,如果要被其他文件访问,必须在定义处加extern声明,如:extern const int a;
三、关于头文件
1、头文件一般用来包含类的定义、extern变量的声明和函数声明
2、因为头文件要包含在多个文件中,所以头文件中不能包含函数或变量的定义
3、对于头文件不应该含有定义这一规则,有三个例外。头文件可以定义类、值在编译时就已知道的 const 对象和 inline 函数。这些实体可在多个源文件中定义,只要每个源文件中的定义是相同的。
4、const变量也可以放在头文件中定义,因为const变量的作用域默认为本文件
四、关于文本的读取
1、getline():只读取一行文本,不包括换行符
五、关于数组的初始化
1、在函数体外定义的内置数组,其元素均初始化为 0。
2、 在函数体内定义的内置数组,其元素无初始化。
3、 不管数组在哪里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化;如果该类没有默认构造函数,则必须为该数组的元素提供显式初始化。
六、关于指针跟引用的区别
1、第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。
2、第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。

浙公网安备 33010602011771号