1,C++ 是一种静态类型的语言,在使用变量前,必须先定义其类型。在编译时会做类型检查,在编写c++表达式的时候,编译器会检查表达式中所用的对象类型是不是之前给其定义的类型,或能否转换为之前给其定义的类型。所以,C++ 的这种静态类型检查,能帮助开发者更早的发现错误。
2,左值可以出现在赋值语句的左边和右边。
右值只能出现在赋值语句的右边。
3,变量(即对象)是内存中具有类型的区域。变量是否自动初始化取决于变量定义的位置:函数体外的变量自动初始化为0,函数体内的变量不会自动初始化。
类类型变量(类对象)的初始化时通过定义类的构造函数实现的。
4,const 对象不能赋给非const引用:
const int val1 = 10;//ok
const int& val2 = val1;//ok
int& val3 = val1;//error cannot convert from ‘const int‘ to ‘int &‘
int val4 = val1;//ok
所谓“引用”是指指向const对象的引用。因为val3是非const引用,所以可以修改val3指向的对象的值。当val1赋给val3时,如果是合法的那么val1指向的对象将不可以被改变,这个val1的定义不相符。
5,派生类的对象只能访问基类的public成员。那么 当派生类protect继承基类时,就不能把派生类的对象赋给基类的指针。即 Base *abj = new Child();是不可以的。因为在protect继承时,基类的public和protect成员在派生类看来都是protect成员。
时间: 2024-12-19 22:54:32