一天一个大牛告我:他那行全部用C++。对C++崇敬油然而生。
只求入门。下面是C++的学习笔记,随笔而记不系统。
一 【C++简介】【2009-7-18】
重视复用,千万别造轮子。
编辑(edit)、预处理(Preprocess)、编译(compile)、连接(Link)、装入(load)和执行(excute)。
编译器将C++程序翻译为机器语言代码(也称为目标码)。
接器将目标码与这些默认功能的代码连接起来,建立执行程序映像。
UNIX系统中,编译和连接C++程序的命令是CC
输入输出:int a;cin>>a;cout<<a;
等待键盘输入,即暂停:cin.get();
C++区分大小写
避免用下划线和双下划线开头的标识符,C++内部使用这类名称.
cout<<endl;endl刷新输出缓冲区
整除结果忽略分数部分,不用取整。(同Java)
房地产商告诉客户影响房价的三个主要因素是“地段、地段和地段”(题外话)
FORTRAN用于数学应用。
C0BOL主要用于需要精确和有效地操作大量数据的商业应用程序。
Pascal用于大学环境中讲解结构化编程。
Ada编程语言是由美国国防部资助开发的,以Pascal为基础。
C++程序文件名通常以.cpp、cxx或.C(此处C大写)扩展名结尾。
本章术语:
arithmetic and logicunit(ALU) 算术逻辑单元
assembly language 汇编语言
assignment operator(=) 赋值运算符
interpreter 解释器
compile 编译器
modeling 构造
distributed computing 分布式计算
modulus operator(%) 求模运算符
multiple inheritance 多重继承
encapsulation 封装
execution-time error 执行时错误
object-oriented design(OOD) 面向对象设计
identifier 标识符
inheritance 继承
preprocessor 预处理器
procedural programming 过程式编程
"reuse,reuse,reuse" 复用、复用、复用
structured programming 结构化编程
semicolon(;) 分号,语句终止符
三【函数】
inline修饰的内联函数:将一些常用的小的函数的代码直接拷贝到调用函数的地方。
inline实质:编译器在适当的时候将函数代码复制到程序中,减少函数调用。编译器可忽略内联函数的声明。
::一元作用域运算符:如果局部变量和全局变量重名,可使用::调用全局变量。(感觉和Java中this方法类似)
signature签名:函数名和参数类型的组合,用来区别重载函数。
注意无参函数和默认参数函数的区别。
template函数模版:基于不同的数据类型完成类似的操作。重载的简便方法。
//例:不管数组类型,都打印第一个数
template<class T>
void f(const T *p){cout<<p[0];}
srand(time(0)),使计算机通过时钟值自动取得种子值(包含在<stdlib.h>)。
C++的4个存储类说明符(storage class specifier):auto、register、extern和static。
标识符的存储类说明符可以确定其存储类、范围和连接。
关键字auto和regtster:声明自动存储类变量:进入声明的块时生成,退出块时删除。
register:让编译器在计算机的高速硬件寄存嚣中保存,而不是内存中。提高速度。
void(*f[3])(int)={function1,function2,function3}
表示f是3个函数指针的数组,数组用三个函数名(是指针)初始化。
四 【数组】
int n[1O]={1};//则其他元素皆为0;
初始化(至少一个)后,其余元素自动初始化为默认值。(与Java不同,Java中算引用类型)
C++编译器忽略函数原型(即函数定义)中的变量名。
数组参数前加const限定符,元素成为函数体的常量,此时在函数体修改元素会造成语法错误。