关闭

C++ Primer学习笔记(二) 变量与基本类型

标签: c++对象
415人阅读 评论(0) 收藏 举报
分类:

1、当我们吧一个超出其取值范围的值赋给一个特定类型的值会怎样?

编译器会将该值对类型的可能取值数目求模,然后取所得值。比如8位的unsigned char,其取值范围为从0到255。如果赋给超出这个范围的值,那么编译器将会取该值对256求模后的值。例如试图将366存储其中,将实际赋值为80。

C++中,把负值赋给unsigned对象是完全合法的,其结果是该负数对该类型的取值个数求模后的值。如将-1赋给8位的unsigned char,那么结果是255。 也就是说,赋值是取该值对该类型取值树木求模后的值。

2、什么是对象?

对象是内存中具有类型的区域。我们可以自由地使用对象描述程序中可操作的大部分数据,而不管这些数据是内置类型还是类类型,是有名字的还是没有名字的,是可读的还是可写的。

3、区分赋值和初始化

初始化分为复制初始化和直接初始化。复制初始化语法使用等号=,直接初始化则是把初始化式放在括号里。

int val(1024);    //direct-initialization

int val=1024;    //copy-initialization

直接初始化语法更灵活且效率更高。

4、extern声明不是定义,也不分配存储空间。它只是说明变量定义在程序的其他地方。

程序中变量可以声明多次,但是只能定义一次。

extern int i;     //declares but dose not define i

int i;               //declares and defines i

5、const限定符把一个对象转换成一个常量。因为常量在定以后就不能被修改,所以定义时必须初始化。

const int i,i=0;

   非const变量默认为extern。要使const变量能够在其他的文件中翻个温暖,必须显式的指定它为extern。

6、引用是(reference)一种复合类型,通过在变量名前添加&符号来定义。复合类型是指用其他类型定义的类型。在引用的情况下,每一种引用类型都“关联到”某一其他类型。不能定义引用类型的引用,但可以定义任何其他类型的引用。

引用必须用与该引用同类型的对象初始化:int val=1024;  int &refVal=val;

当引用初始化后,只要该引用存在,它就保持绑定到初始化时指向的对象。不可能将引用绑定到另一个对象。

引用是对象的别名(另一个名字)。

7、const引用是指向const的引用。

    非const引用只能绑定到与该引用同类型的队形。

   const引用则可以绑定到不同但相关的类型的对象或绑定到右值。

8、typedef的用途:

  1.  为了隐藏特定类型的实现,强调适用类型的目的。
  2. 简化复杂的类型定义,使其更易于理解。
  3. 允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。

9、用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class的成员为private。

10、头文件用于声明,而不是用于定义。但是有三个例外。头文件可以定义类、值在编译时就已经知道的const对象和inline对象。这是因为编译器需要知道它们的定义来产生代码。这些实体也可在多个源文件中定义,只要每个源文件中的定义是相同的。  const对象用常量表达式初始化时,应该把它们放在头文件中。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4583次
    • 积分:151
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章存档