重拾C++

+ 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、引用是变量的别名,引用和指针的区别:

扫描二维码关注公众号,回复: 1957140 查看本文章

(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包含各种泛型算法,算法和容器相互独立。

。。。。。。















猜你喜欢

转载自blog.csdn.net/chenkaifang/article/details/80956785