学习C++从哪入手?
很多人把学习C++语言的过程和学习VC++的过程一样,那就大错特错了,这样会给大家带来许多弯路的,研究很久的VC++后,反过来还是得回过头来学习C++语言,下面说一下学习C++感想。
在C#中虽然还没有对泛型编程的支持,但是相信在将来也一定会加入这一功能),模板是C++中比较复杂的部分,但是作为一个真正的C++程序员,这部分很重要。尤其是对C++标准程序库的掌握尤为重要。
刚开始的时候千万不要直扑VC中的各种向导和设计器。因为依赖开发环境生成的很多代码会把我们搞糊涂,也不利于我们学习C++语言本身。我的建议就是生成一个空的控制台工程,然后自己向里面添加文件。
//robindy/list.cpp #include <iostream> #include <list> using namespace std; int main() { list<char> coll; for(char c = \'a\'; c <= \'z\'; ++c) { coll.push_back(c); } list::const_iterator pos; for(pos = coll.begin(); pos != coll.end(); ++pos) { cout << *pos << \' \'; } cout << endl; return 0;
这段程序用到了标准模板库,在屏幕上打印字符a~z,其中main函数的标记式只有两种是被C++标准委员会接受的,只有以下两种写法是符合C++标准的,是可移植的。即:
int main() { } 和 int main(int argc, char* argv[]) { }
我不建议初学者一开始就从模板库入手,但是我建议应该逐渐地有意识地学习模板库。如我们应该熟悉cout和cin的用法(位于iostream),而减少使用老式的C函数库中printf和scanf等。
从控制台入手的好处就是避免我们理解VC中向导等工具生成的其他代码,整个程序的流程很清楚。新手学习VC的一大难点就是搞不清楚整个程序的流程(从那条语句开始执行,然后从那条语句退出。MFC做了太多封装,掩盖了事实的真相。
通过控制台我们可以很快地学习C++语言中的很多新特性。如类的封装、继承和多态等。通过这个时期的学习,要能够掌握三个东西:C++关键字、语法(重点是和面向对象有关的,以及模板)、学习C++感想(知道怎么使用即可,要彻底掌握需要很多时间和精力)。至于与界面有关的东东(MFC中很大一部分是与界面相关的类,所以我认为MFC很臃肿而无聊!回头看过以前用MFC写的程序,有一种“垃圾”的感觉。)