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、第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。

 

posted @ 2014-10-15 19:21  雨中醉  阅读(123)  评论(0)    收藏  举报