C++ 随笔

Posted on 2012-02-08 15:16  无忧consume  阅读(192)  评论(0编辑  收藏  举报

  c++是一门静态类型语言,在编译时会做类型检查

  左值: 可以出现在赋值语句左边或右边

  右值: 可以出现在赋值语句的右边,不能出现在左边

赋值初始化,直接初始化差别很微妙的(13章):

  复制初始化(copy-initialization) 用等号(=) int a = 10;

  直接初始化(direct-initialization) 放在括号中 int a(10); 更灵活,效率高 p42

  一般来讲,赋值初始化,右侧会涉及到构造初始函数,之后在赋值给左侧(以类为鉴)

  类一般有默认够着函数,以string类为例,string类定义了默认的够着函数来初始化string变量为空字符串,即没有字符的字符串

  std::string empty;

  变量的定义:声明+分配存储空间 int a; or int a = 10; or int a(0)

  变量的声明:声明变量的类型和名字, 可以通过external关键字声明变量名而不定义它,external int a;程序的变量可以声明多次,但只能定义一次,如果external后有初始化,则是定义。external int a = 10;(必须在函数外部)

  浮点数不能用等号==来判断,一般会有误差,因此要用做差(0.00001)来判断

  const 变量定义了就不可以修改,因此定义时必须初始化,(声明不初始化)const int a = 10; 并且const 变量还是左值但不可修改,声明extern const int a;

  注意:const变量是定义该对象文件的局部变量不特殊声明其他文件不可以访问,如若要其他文件访问需要做特殊修饰extern。

  file1 -- extern const int a = ...;

  file2 -- extern const int a;

引用:

  引用就是别名,语法 int val = 10; int &a = val;可以对引用修改  a= 20;

  一行可以有多个引用定义,但是要在每个引用前加一个&

const引用:

  "const引用"就是指向const对象的引用, "非const引用"是指向非const的引用

  const变量的引用要用const引用,普通引用不可以引用const变量。

   const引用可以初始化为不同类型的对象或是初始化为右值 

  int i = 42;
  const int & r =42;

     int & ival = 42;//错误因为const引用(42)是只读的,不可修改

  const int & r2 = r + i;

  对非const引用是非法的,以以下为例解释

  double dval = 3.14;

  const int & ival = dval;

  编译器会将代码改为:

  int temp = dval;

  const int & ival = temp; 

  因此修改dval并没有影响ival

typedef:定义变量的同义词

  隐藏特定类型的实现,强调类型的目的

  简化复杂类型的实现,抑郁理解

  允许一个类型用于多个目的,同时使得每次使用该类型的目的明确

枚举

  枚举的值可以不唯一,只要求后边的比前边的大1,可以在不同位置赋值初始化

#include

  仅包含头文件这一变量  <>(编译器会把里边的头文件作为标准头文件) 

  预处理变量,#define XXXX

  

  

 

  

  

Copyright © 2024 无忧consume
Powered by .NET 9.0 on Kubernetes