更新时间:2015-08-23 10:07:03浏览次数:1+次
有很多人都说C++好难学啊,比如说:“为什么用cout 啊?printf 不是挺好的嘛?还用cin,scanf也不差 啊!还要写什么类啊?结构体不行嘛?”,东西太多了,感觉太难了,本文简单介绍一下原因和方法(个人观点,如有错误请指教):
为啥用cout ?有很多时候,我们用的是string,当然很多人会问我:“为啥用string ?”,我的回答就是因为它方便操作,并且不用去计算大小,比如我写了一个界面,用来保存用户的输入,当然不会string 的话就直接定义一个buffer,比如char buffer[4096];如果用户只输入一个字符,,你还是分配那么大的空间,是不是浪费了?但是如果你会用string呢?那么直接一行代码搞定: string buffer。代码只需要一行,就不用手动分配空间,还不用担心溢出。然后因为我们用了string,都是流数据啊,所以cout << buffer<<endl;搞定了。。。如果你用了char buffer[4096];那么就要printf ("%s\n",buffer);比较一下:
//C++版本
string buffer;
cout << buffer<<endl;
//C版本
char buffer[4096];
printf ("%s\n",buffer);
哪个更简洁?
肯定是cout啊,,并且还有好处就是我不需要知道他是什么格式,printf还需要%s %d等等,,控制输出。麻烦多了。
string buffer;cin >> buffer;
这样子就不会出现因为输入多了导致内存不足而溢出的问题了,并且代码量也少啊!!!
最重要的是,scanf 的格式写起来容易错,编译器也不容易检测,比如int a;scanf ("%d",a);和scanf ("%s",a)编译器无法发现的,如果我们采用C++的写法就没问题了,输入错了编译器直接告诉你了;
int a;
cin >> a;//(正确),想写错都挺难的
但是如果你有代码提示工具,你还用了类,就实现了:“拉帮结派”的效果,需要哪个类的哪个函数直接
ClassName::FunctionName (Paramtor...);
这样的格式就可以了,代码提示工具会在你输入到了 ClassName:: 自动枚举当前类的所有函数,可能有十几个函数,但是没有类的话,代码提供工具给你显示几十个函数让你去寻找你的目标函数,一不小心就找错。面对这个问题你会选择抛弃类吗?
这个问题我也不知道该怎么学习,其实感觉这些东西没有什么的,你需要把C++理解成一个工具,如果你学习过C语言,那么就相当于你以前是开夏利的,现在学习C++,好比你是开着现代呢,差距就是开车的感觉不同,夏利能跑到140km/h很费力,现代跑140很轻松。。所以说别的都一样,多了点功能。不用害怕。
第一步:完成C++转化,cout 代替printf ,cin代替scanf,学会使用class,以class为主,struct为辅。
第二步:开始写东西,比如自己写一个学生管理系统。(不必参考书上的代码,自己写,否则无法体会到私有变量和公有变量的差距,私有函数和公有函数的差距)。
第三步:接触Qt,感觉一下什么是比较完善的封装机制。同时你可以学习写带界面的东西了。自己靠想象力创造。
第四步:开始学习socket,进军互联网,相信你可以的。
第五步。。。。我也不知道,我也没到这。。。
最后吧,给大家一个建议,就是按照自己的兴趣学习。多写代码。
相关资讯