c++备忘01
0x00 对象、类型、值
缺省条件下,读取字符串会被空白符所终止(空格换行tab)
类型:定义一组可能的值与一组运算(数据的表示、数据的操作)
对象:用于保存一个指定类型值的一些内存单元
值:根据某个类型来解释的内存中的bit
变量:一个命名的对象
声明:命名一个对象的一条语句,但是没有分配内存空间
定义:是一个声明,同时分配内存空间
extern int a;//只是声明一个int类型变量,没有分配内存空间
int a;定义(同时也是声明)一个int类型变量,分配了空间,执行了默认初始化
void print();//一个函数的声明,没有函数体,不占空间(代码也要占空间的)
void print(){//一个函数的定义(同时也是声明),有函数体,占空间
cout<<"hello"<<endl;
}
class A{ //这个是类的声明而不是定义,对于类里的成员函数,任然区分定义和声明
public:
A(){}
private:
int a;
};
对于一个变量,可以在代码中(不论是一个源文件还是多个源文件)重复声明,但是不能重复定义。因此一个头文件如果被多个源文件使用,里面就不能定义变量、函数,但是可以声明类、变量、函数
如下,一个头文件定义函数然后被两个源文件引用后编译结果:
0x01 不安全转换
如果转换后丢失精度,则为不安全转换,如果需要强制转换可以使用static_cast<>()