`
文章列表
1.无论创建多少对象,程序都只创建一个静态类的副本,类的所有对象共享同一个静态成员 2.不能在类声明中初始化静态成员变量,除非使用const,在类声明外初始化时,使用类作用域运算符,不要使用关键字static 3.删除对象可以释放对象本身占用的内存,但不能自动释放属于对象成员的指针指向的内存 4.自动存储对象被删除的顺序与创建的顺序相反 5.使用一个对象来初始化另一个对象时,编译器自动生成构造函数(也称复制构造函数),如果用户没有手动指定的话,形如class_name(const class_name &),当函数按值来传递对象或者函数返回对象时,都将使用复制构造函数 6.默认的复制构造 ...
1.重载运算符,需要使用运算符函数 operatorop(arg-list) op必须是有效的c++运算符 2. class_t a, b, c; c = a + b; //等价于c = a.operator+(b)  a是调用的对象,b是作为参数传递的对象 3.重载限制 1)重载后的运算符必须至少有一个操作数是用户定义的类型 2)使用运算符不能违反原来的句法规则 3)不能创建新运算符 4)有一些运算符不能重载 4.友元函数与类的成员函数具有相同的访问权限,对于非成员重载运算符函数,运算符左边的操作数对应于运算符函数的第一个参数,运算符右边的操作数对应于运算符函数的第二个参数 5.友元函数在类中 ...
1.OOP特性: 抽象 封装和数据隐藏 多态 继承 代码的可重用性 2.OOP从用户的角度考虑对象--描述对象所需的数据和描述用户与数据交互所需的操作 3.类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组 ...
1.持续性 自动存储:函数定义中声明的变量,包括函数参数 静态存储:函数定义外声明的变量和使用static定义的变量 线性存储:使用thread_local声明,生命周期与所属线程一样长 动态存储:new delete 2.类中声明的成员,作用域为整 ...
1.编译器将内联函数代码替换函数调用,函数声明和定义之前加关键字inline,内联函数不能递归 2.引用是已定义变量的别名,引用变量主要是用作函数的参数,函数将使用参数原始版本而不是副本,必须在声明引用变量时将其初始化,一旦初始化完成,将不能再成为其他变量的引用 3.想使用引用,又不想修改变量的值,可以使用const int &a 4.如果函数实参与引用参数不匹配,仅当参数为const引用时,C++将生成临时变量,使该引用指向临时变量,生成临时变量的情况 1)实参类型正确,但不是左值 2)实参类型不正确,但可以转换为正确的类型 5.将引用用于结构,可以节省内存和时间 6.基类引用可以指向 ...
1.C++的for循环允许这样定义初始值 for(int i;;); //变量i只存在于for语句中 2.对于类而言,前缀++i比后缀i++效率高 3.逗号表达式 先计算第一个表达式再计算第二个表达式,以此类推,逗号表达式的值是最后一部分的值,逗号运算符在所有运算符中的优先级最低 4.C++基于范围的for循环 int a[3] = {1,2,3}; for(int x:a); //x依次表示a[0] a[1] a[2] 5.函数原型不要求提供变量名 6.如果数据类型本身并不是指针,则可以将const或非const的数据地址赋给指向const的指针,但只能将非const数据的地址赋给非const ...
1.sizeof用于数组名,得到的是整个数组中的字节数,如果用于数组元素,得到的是数组元素的长度,如果用于指针,得到的是指针的长度 2.如果只对数组的一部分初始化,则编译器将把其他元素设置为0 3.C++11支持的数组初始化 1)int a[4] {1,2,3,4}; 2)char a[4] {};  //all set to 0 4.C++11支持的字符串初始化 char a[] {"Hello world"}; string a {"Hello world"}; 5.C++11支持的结构初始化 struct a {     int x;     cha ...
1.可对类型名或者变量名使用sizeof,但类型名应该放在括号中 2.C++支持的变量初始化方法 1)int a(11); 2)int a = {11}; 3)int a{11}; //大括号内不包含任何值,变量将被初始化为0 3.尽量使用const来创建常量 4.使用相同的符号进行多种操作叫做运算符重载
1.C++中,函数定义的参数为空与参数使用void等效,C中参数为空意味着对是否接受参数保持沉默 2.cin和cout是istream类和ostream类的实例,这两个类是在头文件iostream定义的 3.新式纯粹的C++头文件没有扩展名,转换后的C头文件名加前缀c 4.名称空间,使各个厂商的代码组合起来不发生冲突,using namespace xxx 5.类定义描述的是数据格式和用法,对象是根据数据格式规范创建的实体 6.程序能够访问名称空间std的方法 1)using namespace std放在所有函数之前,让文件中的函数都能够使用名称空间std中的所有元素 2)using name ...
1.C++是在C语言面向过程(Procedure Oriented)的基础上添加了面向对象编程(Object Oriented)和面向泛型编程(Generic Oriented) 2.过程性编程强调算法,采用自顶向下的设计方法,对象性编程强调数据,采用自下向上的设计方法,对象性编程将数据和方法合并为类定义,泛型编程独立于特定的数据类型,可以只编程一个泛型函数,并将其用于实际类型 3.C++标准包括C++98,C++03和C++11,最新的C++14即将发布?
1. 当满足条件的case中没有break,程序将依次执行其后的每种条件(包括default)直到遇到break跳出 int main() { int n = 1; switch(n) { case 1: printf("--1--\n"); default: printf("default\n"); case 2: printf("--2--\n"); break; case 3: p ...
先安装依赖readline sudo apt-get install libreadline-dev 解压lua-5.3.1.tar.gz,进入lua-5.3.1/ 1. make linux 2. sudo make install 生成的bin文件存放在/usr/local/bin/lua /usr/local/bin/luac 生成的lib文件存放在/usr/local/lib/liblua.a
svn up A:新增 D:删除 U:更新 C:冲突 G:合并 svn st A:新增 D:删除 M:修改 C:冲突 R:替换
tar --exclude-vcs -cf archive.tar foo 可以使打包生成的文件不包含版本控制信息
在使用SVN命令行提交代码(svn ci -m"comment"),提交的注释都处在一行中,如果我们想要使注释分为几行,可以使用如下命令: svn ci -m $'comment1\ncomment2\ncomment3'
Global site tag (gtag.js) - Google Analytics