【C++ primer 笔记】第一章

来源:互联网 发布:mac没装驱动会怎么样 编辑:程序博客网 时间:2024/05/22 17:45
1.extern 对变量声明时 ,不对变量赋初值,也不为之分配存储空间。声明不是定义,只是说明该变量在其他文件出现。例如 extern int i;但是 extern int i = 1;这种情况表明已经定义,不可重定义,且该方式只能出现在函数外部。

2.const 定义后时变量必须初始化,且之后不可被修改; const变量默认为文件的局部变量,可以使用extern在整个程序中进行访问

3.引用类型(引用是别名)
int ival = 3;
int &refVal = ival;//ok
int &refVal2;//error,必须被初始化
int &refVal3 = 10;//error
refVal = 5;//效果是把ival的值改为5
const int num = 5;
const int &point = num;//ok,const类型变量的引用必须是const引用
int &point = num;//error

--P52

4.当类末尾的分号缺失时,编译器会报错,但是报错内容难以理解……
如下:

1>------ 已启动生成: 项目: chapter2, 配置: Debug Win32 ------
1>生成启动时间为 2012/9/18 21:13:35。
1>InitializeBuildStatus:
1>  正在创建“Debug\chapter2.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>ClCompile:
1>  fuzhi.cpp
1>g:\c++ primer\c++\chapter2\fuzhi.cpp(30): error C2628: “Foo”后面接“int”是非法的(是否忘记了“;”?)
1>g:\c++ primer\c++\chapter2\fuzhi.cpp(31): error C3874: “main”的返回类型应为“int”而非“Foo”
1>g:\c++ primer\c++\chapter2\fuzhi.cpp(32): error C2440: “return”: 无法从“int”转换为“Foo”
1>          无构造函数可以接受源类型,或构造函数重载决策不明确
1>
1>生成失败。
1>
1>已用时间 00:00:01.08
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

5.class的成员默认为private, struct的成员默认为public

6.头文件里不要放变量的定义,只放变量的声明