目录:
视频: 11 对象声明和表达式 2024
C ++ for Dummies的一部分Cheat Sheet
要在C ++程序中执行计算,您需要一个表达式。表达式是一个既有值又有类型的语句。在C ++程序中,声明是定义一个变量的语句,或者是一个像数字或字符那样的“持有坦克”。
表达式
表达式采用以下形式之一:
objName //用于简单对象运算符表达式//用于一元运算符expr1运算符expr2 //用于二元运算符expr1? expr2:expr3 //三元运算符funcName([argument list]); //用于函数调用
文字表达式
<! --1 - >文字是一种常量表达形式。下表中定义了各种类型的文字。
示例 | 类型 |
---|---|
1 | int |
1L | long int |
1LL | long long int |
0 | 双 |
1。 0 | float |
'1' | char |
“字符串” | char *(自动以空字符结尾) |
L“字符串” | wchar_t * > u8“这是一个带有UTF-8字符的UTF-8字符串:u2018” |
char8_t * | u“这是一个UTF-16字符串,带有UTF-16字符:u2018” |
char16_t * | U“这是一个带有UTF-32字符的UTF-32字符串: |
U00002018”
char32_t * |
true,false |
bool | 0b101 |
二进制标) |
|
声明使用内部和用户定义的类型。内部类型是
[] char [] wchar_t [] [] int float [long] double bool
声明具有以下形式之一:
[] [const] type var [= expression]; // variable [] [const] type array [size] [= {list}]; // array [const] type object [(argument list)]; // object [const] type object [= {argument list}]; //替代[const]类型* [const] ptr [=指针表达式]; //指针类型&refName = object; //引用类型fnName([argument list]); // function
如果C ++可以确定变量的类型,则可以使用关键字auto:
关键字decltype提取表达式的类型。这种类型可以在任何使用类型名称的地方使用。例如,以下示例使用decltype声明与现有变量具有相同类型的第二个变量:
decltype(var1)var2; // var2的类型与var1相同
函数定义的格式如下:
//简单函数[]类型fnName(参数列表){…} //在类外部定义的成员函数[inline]类的类:: func(参数列表)[const] {…} //构造函数/析构函数也可以在类的外面定义Class:: Class([argument list]){…} Class::〜Class(){… } //构造函数/析构函数可能被删除或默认//代替定义类::Class([argument list])=; Class::〜Class()=;
一个重载的运算符看起来像一个函数定义。大多数重载操作符可能被写成成员或简单的函数。当作为成员函数写入时,*这是假设的第一个参数给操作符:
<! --1 - >
MyClass&operator +(const MyClass&m1,const MyClass&m2); //简单的MyClass&MyClass::运算符+(const MyClass&m2); // member;用户也可以使用class或struct关键字定义自己的类型:
ClassName [:[virtual] [public] BaseClass] {:// constructor ClassName([arg list])ClassName()[=;] //析构函数[virtual]〜ClassName()<{…} | [=; > //公共数据成员类型dataMemberName [= initialValue]; //公共成员函数类型memberFunctionName([arg list])[{…}] // const成员函数类型memberFunctionName([arg list])const [{…}] //虚拟成员函数virtual type memberFunctionName([arg list] )[{…}]; //纯虚拟成员函数virtual type memberFunctionName([arg list])= 0; //必须覆盖基类函数类型memberFunctionName([arg list])override的函数; //一个不能在子类型memberFunctionName([arg list])final中被覆盖的函数;};
此外,具有单个参数的构造函数可能被标记为明确的含义,即它不会用于从一种类型到另一种类型的隐式转换。将构造函数标记为默认意味着“使用默认的C ++构造函数定义”。将构造函数标记为delete可删除默认的C ++构造函数定义。
enum STATE {DC,//获得0 ALABAMA,//获取1个ALASKA,//获取2个ARKANSAS,//获取3 // …等等}; int n =阿拉斯加; // ALASKA的类型为int
默认情况下,单个条目的类型为int,但可以在C ++ 2011标准中更改:
enum ALPHABET:char {A ='a',// gets'a' B,//得到'b'C,//得到'c'// …等等}; char c = A; // A的类型为char
C ++ 2011允许创建新类型的第二种格式: