+ C++ Primer Plus
1、输出流
#include <iostream>
using namespace std;
int main(int argc,char**argv)
cout << "come up to learn c++"
2、与C相同的简单略过。
3、getline、get、string类、new、delete
4、内联函数使用相应的函数代码替换函数调用,程序无需跳到另一个位置处执行代码再跳回来,内联函数的运行速度比常规函数稍快,代价是占用更多内存,如果程序在10个不同地方调用同一个内联函数将包含该内联函数的10个副本。经常调用的函数定义为内联。
5、引用是变量的别名,引用和指针的区别:
(1)当引用被创建时,它必须被初始化。而指针则可以在任何时候被初始化。
(2)一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。而指针则可以在任何时候指向另一个对象。
(3)不可能有NULL引用。必须确保引用是和一块合法的存储单元关联。
6、函数默认值,函数重载,函数模板
7、构造函数和析构函数,this指针,运算符重载operator+,友元,虚函数,多重继承。
+ Effective C++
1、C++ = C + 面向对象 + 泛型 + STL
2、尽量用const、enum、inline替换#define
3、确定对象使用前被初始化
4、如果自己没声明,编译器默认为类添加一个copy构造函数、一个copy assignment操作、一个构造函数和析构函数,所有这些函数都是public和inline的。
5、为多态基类声明virtual析构函数。
。。。。。
+ 泛型编程与STL
1、简单示例
#include <iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<iterator>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv)
{
vector<string> V;
string tmp;
while(getline(cin,tmp))
{
V.push_back(tmp);
}
sort(V.begin(),V.end());
copy(V.begin(),V.end(),ostream_iterator<string>(cout,"\n"));
return 0;
}
STL包含各种泛型算法,算法和容器相互独立。
。。。。。。