C++ Primer(二) 类与对象
类与对象类(class)定义了一种数据类型(成员变量),以及一组与其关联的一组操作(成员函数)。类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量(具体实例,Instance)。 在类体中与类体外定义成员函数的区别为:在类体中定义的成员函数会自动成为内联函数(inline),在类体外定义的不会。 this指针成员函数可以通过名为this的额外隐式参数来访问调用它的对象(实例化的类)。this只能在成员函数内部使用,其它地方非法,且只有当对象被创建后this才有意义,所有也不能在static成员函数中使用。 this关键字实际是成员函数的隐式形参,在编译阶段由编译器添加到参数列表中,在调用成员函数时将对象的地址作为实参传递给this。 this关键字实际上也是一个const指针(常量指针,顶层const),this指针的值(不是this指针所指对象的值)不能被修改(例如:赋值,递增,递减)。 const成员默认情况下this指针是指向非常量的指针常量(可以通过指针改变对象值,但不能改变指针指向),它是不可以指向常量对象,所以const类型的类对象不能调用普...
C++ Primer(一) 基本语法
命名空间::域解析操作符:编译器从操作符左侧名字所示的作用域中寻找右侧那个名字。 using声明形式using namespace::name。头文件中不应包含using声明。 变量与基本类型计算机以比特序列(bit,b)存储数据,每个比特非0即1。 大多数计算机以2的整数次幂个比特作为块来处理内存,可寻址的最小内存块称为字节(byte,Byte,B)。 存储的基本单位称为字(word),它通常由几个字节组成。 123451byte = 8 bit 1KB = 1024B 1MB = 1024KB 1GB = 1024MB1TB = 1024MB 赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。 注意含有无符号类型的表达式: 当一个算术表达式中既有无符号数又有int值时,那个int值就会转换成无符号数。 当从一个无符号数中减去一个值时,不管这个值是不是无符号数,需确保结果不是一个负值。 递减循环中,结果永远不会是负数(>=0)。 变量变量提供一个具名的,可供程序操作的存储空间。数据类型决定变量所占...
链表
链表(linked list)是一种常见的线性数据结构。常见的链表分类有:单向链表,双向链表,循环链表,静态链表等。 链表节点结构链表结构又分为带头结构的链表与不带头结构的链表。 单向链表 12345678910111213struct Node { int data; struct Node *next;}/* 链表头,可带可不带 */struct Header { int length; struct Node *next;};typedef struct Node Node;typedef struct Header pHead; 双向链表 1234567891011121314struct Node;typedef struct Header* pHead;typedef struct Node* pNode;struct Header{ int length; pNode next;};struct Node{ int data; pNode pre; pNode next...
编译器之神-Vim
Keep it simple enough. 常用指令 i插入,在光标前插入 x删除当前光标所在的字符 dd删除并保持剪贴板,2dd删除2行 p黏贴 3p hjkl左下右上 数字0到行头 ^到本行第一个不是blank(空格,tab,换行,回车)字符 $到本行行尾,0到本行开头 g_本行最后一个不是blank字符位置 /pattern 搜索出字符多个匹配,按n到下一个 yy拷贝当前行,相当于ddp u撤销 反撤销 .重复上一次命令 3.重复三次 NG到第N行 :N如:137 gg到第一行 G到最后一行 块操作hjkl =自动缩进<>左右缩进 自动补全 .vimrc无插件基本配置说明1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465""""" 基础无插件设置set nu &quo...
