摘要:
·源程序中允许用一个标识符来表示一串字符,称为宏·该标识符称为宏名,这串字符串称为宏的内容·宏定义用预处理语句#define完成·预编译处理的时候,对程序中所有的宏名直接用定义中的字符串去代替,称为宏展开·定义:#define PI 3.14159 //不用加分号,此处PI为字符串类型 #defin 阅读全文
摘要:
#语句后不加分号#include <iostream> //引用系统头文件时用<>#include "MyClass" //引用自己的头文件时用"" 阅读全文
摘要:
·函数的形参不占内存·实参可以是变量,常量或表达式 如:max(3,a+b);·函数定义时,必须声明形参类型·实参和形参类型应相同或者赋值兼容·实参对形参的数据传递是值传递,即单项传递 int c=max(a,b);int max(int x,int y){ return x>y?x:y;}a,b为 阅读全文
摘要:
有时我们可以忽略数据成员初始化和赋值之间的差异,但并非总能这样。如果成员是const或者是引用的话,必须将其初始化。例如: class ConstRef{ public : ConstRef(int ii); private : int i; const int ci; int &ri; };和其他 阅读全文
摘要:
优先级 操作符 描述 例子 结合性 () 调节优先级的括号操作符 (a+b)/4; [] 数组下标访问操作符 array[4]=2; -> 通过指向对象的指针访问成员的操作符 ptr->age=34; . 通过对象本身访问成员的操作符 Obj.age=34;1 :: 作用于操作符 Class::ag 阅读全文
摘要:
堆上进行的操作->动态栈上进行的操作->静态 new生成的内存是动态的delete只能删除动态内存静态内存只能由系统管理 delete 与new 成对出现 阅读全文
摘要:
int arr[5]{1,2,3,4,5];int *p=&arr[3]; //此时p就是迭代器p-=2; //p向左移两个单位begin(); //获取一个容器第一个元素的地址end(); //获取一个容器最后一个元素的下一个地址(尾后迭代器) range for循环:for(int x:arr) 阅读全文
摘要:
类型别名是一个名字,它是某种类型的同义词.使用类型别名有很多好处,它让复杂的类型名字变得简单明了,易于理解和使用,还有助于程序员清楚地知道使用该类型的真是目的有两种方法可用于定义类型别名.传统的方法是使用关键字typedef:typedef double wages; //wages是double的 阅读全文
摘要:
对于计算机程序设计而言,变量和对象在内存中的分配都是编译器在编译程序时安排好的,这带来了极大的不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。对于不能确定需要占用多少内存的情况,动态内存分配解决了这个问题。 new和delete运算符是用于动态分配和撤销内存的运算符。 一、new用法 阅读全文
摘要:
我们可以向一个算法传递任何类别的可调用对象。对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用的。即,如果e是一个可调用的表达式,则我们可以编写代码e(args),其中args是一个逗号分隔的一个或多个参数的列表。到目前为止,我们使用过的仅有的两种可调用对象是函数和函数指针,还有其 阅读全文