第2章 变量和基本类型

多行字面值(/):在一行的末尾加一反斜线符号可将此行和下一行当作同一行处理。

 

左值(lvalue):左值可以出现在赋值语句的左边或右边。

右值(rvalue):右值只能出现在赋值的右边,不能出现在赋值语句的左边。

 

C++支持两种初始化变量的形式:复制初始化(copy-initialization)和直接初始化(direct-initialization)。复制初始化语法用等号(=),直接初始化则是把初始化放在括号中。

初始化不是赋值。

初始化是创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值代替。

对内置类型来说,赋值初始化和直接初始化几乎没有差别。

 

与其他变量不同,const对象默认为文件的局部变量。

通过指定const变量为extern,就可以在整个程序中访问const对象。

//defines and initializes a const that is accessible to other files

extern const int bufsize = fcn();

 

//

引用必须用与该引用同类型的对象初始化,必须在定义引用时进行初始化。

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

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

const int& ref = 1;

会这样处理
int no_name_value = 1;
const int& ref = no_name_value;
这跟上面的代码类型,但区别在于no_name_value这个变量你是不能使用的,根本看不到有这个变量的存在。
但确实编译器会这样处理,增加了一个没有任何名字的变量,然后让这个const& 去引用他。
记住最重要的一点,no_name_value和ref的生存周期是同步的。两个存在同时销毁。

Code:

结果如下:
begin
构造函数Value=2
print   Value=2
end
析构函数Value=2

 

//

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

 

因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。

例外:头文件可以定义类.值在编译时就已知的const对象和inline函数。

头文件应该含有保护符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值