1.用户定义的名字不可以和C++的关键字重复
string 本质上是一个类,所以它的一些方法就不能与C++的关键字重复。
“string class 采用earse()而非delete()来表示删去一个字符"
2.为什么会有构造函数语法(多个初值赋值)
我们习惯上使用 “=” 来赋值,例如: int number = 5;
但是这样有两点限制:
①赋值的类型是确定的,int number = 5; 就是int 类型的
②一次只赋值一个初值,把等号右边的数字赋值给左边的数字
但是,试想,
一个类有多个需要被赋值的数据成员,当生成一个这个类的对象并给这个对象赋初值的时候,如果还是直接用等号,那么首先我们就无法确定赋值的对应关系,不知道那么多数字、字符串如何对应到具体的需要赋值的这个类的哪个数据成员。所以我们需要一个语法约定一个顺序,并对于多个数值按照约定的顺序依次为类的数据成员赋值。
3.const 关键字
初始化之后,值无法被改变
const int number =5;
number = 6;//错误,会出现报错 assignment of read-only variable’number’
//报错的意思是;number 的值不能被改变,但是程序中有语句试图改变
4.C++运算符的优先级
逻辑运算符 | NOT (!) |
---|---|
算术运算符 | * / % |
算术运算符 | + - |
关系运算符 | < ,>,<=,>= |
关系运算符 | ==, != |
逻辑运算符 | AND && |
逻辑运算符 | OR |
赋值运算符 |
5.表达式的小技巧
C++运算符左边添加感叹号!,表示否定
①if( ! user_name )等价于 if(user_name == false)
②user_name%8 == true ,表示user_name恰好能被8整除的时候