发新话题
打印

别人学编程的心得--今天我终于学走进了C++这扇大门(转贴)

别人学编程的心得--今天我终于学走进了C++这扇大门(转贴)

今天我终于学走进了C++这扇大门了,
因为小A终于捧起了《C++Primer》这书。但今天我真正入手的不是这本,而是老潭那本《C程序设计第二版》入手,第二版就是比第一版多出了C++的一些部份,不过也只是短短几十页。
我今天接触到的新编程概念都是多么的令我兴奋,因为我自己将有更多有趣的知识等着我去学习它们,我也知道学C++这条路是很长的(当然不是单说语法、语义,而是OOP这个思想)。现先来汇报一下我所接触到的一些知识吧,因为新接触都只是大概的看了一下C++对C的扩充。
C++里的输入输出,cout(读音see out) cin(读音see in),C++里称这两个为输入输出流。这个新输入输出形式的感觉是很直观,看下例:
cin>>a;
cont<<"A="<<a<<endl;
是不是很有流动的感觉呢?哈~`不怪得称它为流了。不过有点想问的就是那里可以让这个输入输出识别是什么类型的数据呢?这个我不知道(可能是因为看了一点点,我不敢说没有这个。不过其实C++还是和C相兼容的,即说明printf()还是被支持的。
函数的重载和带缺省参数的函数,这里让我感觉到C++的一些复杂性了,现在都有这种感觉,以后的呢?这里重载从具体看来就是我们可以定义相同名字的函数,但其参数是不同的,比如参数的类型不同,但编译器按你所传入的实参来到识别你所调用的函数究竟是那个。带缺省参数也比较好理解,就是参数可以缺少(定义是默认一个值来到实现),不过注意的是这里定义的那个缺省形参一定要最右端的。
变量的引用,这里除了引用的概念外,不有一个新的重要概念,看下例:
int a;
int &b=a;
单是int &b=a;这里都够意外的了,怎么取地址符可以这样呢?难道是将a的值赋给b的地址吗?非也,其实这里就是引出另一个要学的知识“运算符重载”(小A好像在那里看过的)。谈起引用,引用的最大重要就好像指针一样可以地址传入函数,即引用的变量变了,那么被引用的变量也随之而变(b被当做实形传入函数改了,那么a的也会变成同b一样)
内置函数(内嵌函数) 没有什么好说,如果看过书大家也会懂(小A这么笨也懂了,哈哈)
inline int max(int a,int b); /*就是inline这个关键字了*/
动态分配new delete ,好像和malloc free对应的吧,但在C++里建议用前者代表后者,原因是什么?小A不知道,还没有深入研究。
最后的一个概念就是作用域运算符了,这个我也还没有深入研究,脑海里还不很确的,所以也不说了(小A如果说了只会给人扔嗅鸡蛋)
《C++Primer》这晚我是看了,而且越看就越快(小A很紧,像一晚就把它看完似的),所以结果什么也没有看到,就是只剩一些很模糊的东西在脑海里飘浮着。其实我看那章就是整本书的缩影,小A当然看不懂,如果都全知了(不过也没有可能,因为在那章里基本上一遇到什么难的地方就突然提示说“这个将会*章深入讨论”。现在脑海里还只记得全章是围桡着要编一个特别的数据类型“娄组”,这个“数组”不是我们通常所见的,而是包括了很多功能的数组。可以知道该数组有多少个元素啊、可以自己排好序啊、可以抽出其中最小或最大的数啊等等……这就是C++的综合实例了吧,这章里基本上接触了所有关于C++的概念了,现在也忘得七七八八了,哈哈。最后在我写这篇日记时不经意的又翻开了《C++Primer》的“本书整体结构”(前序),特别声明了打了*符号的是可以跳过以后才看的,哈~`原来他早就知道会有像小A这种笨人读该书的了,哈哈。
今天再次拿回书看的感觉真好。
那里可以让这个输入输出识别是什么类型的数据呢?
--这其实是对“<<”和“>>”重载时,利用函数重载功能耍的小小把戏。
比如我可以写一个函数ostream &ostream::operator<<(int i)和一个ostream &ostream::operator<<(char ch),那么,当写cout << "x"时就会调用后一个版本,而写cout << 13时就调用前一个版本。
int &b=a;
--呵呵,这个“&”可不是取地址运算符,这个表示b是对a的一个引用。引用的概念类似与指针,但要注意的是引用是一个依附,本身不能独立存在,所以,没有对NULL的引用,也不能写不赋初值的引用。
动态分配new delete ,好像和malloc free对应的吧,但在C++里建议用前者代表后者,原因是什么?
--原因有几个:1. new和delete会调用对象的构造和析构函数,malloc和free不会
2. new和delete会根据你的语句自动正确分配内存,这一点在多态时特别有用。
例如:class A{};
class B : public A{};
A *a = new B;
这时分配给a的内存就是B这么大,而且不会引起任何问题,new会为你作好转换工作,如果A中有虚函数,new的作用就更明显了。

TOP

不知道我这样的电脑盲能不能学会编程~从哪里学起呢??

TOP

[quote][b]以下是引用[i]乱世在2003-12-17 9:26:46[/i]的发言:[/b]
不知道我这样的电脑盲能不能学会编程~从哪里学起呢??
[/quote]

同样的感觉,同样的问题。
[em05][em18]
每天6小时以上的在线时间,全心全意为你服务! 网络赚钱欢迎光临: http://redwoodburn.yeah.net

TOP

对不起现在才看到你的好文章,这种东西不固定那其他贴都应该拿去垃圾箱了
QQ:37900239 欢迎交流,拒绝闲聊

TOP

我开始学dephi

TOP

没问题,学delphi 吧

TOP

想学C++,又想学Delphi,还想学VB,唉!
都不知道学哪个好了。。。
想到最后,我有一点VB的基础,还是学VB吧

TOP

[quote][b]以下是引用[i]xkp0620在2004-1-13 15:52:10[/i]的发言:[/b]
想学C++,又想学Delphi,还想学VB,唉!
都不知道学哪个好了。。。
想到最后,我有一点VB的基础,还是学VB吧
[/quote]

你见什么好就用什么,重要的是自己的感觉。

语言不一样,思路是一样的。
我……?

TOP

嗯   先看看
不過先學vb好了

TOP

要看你学编程的目的了,如果只是开发点简单的作弊程序,那还是学vb吧
如果要开发点复杂的程序,就学delphi

TOP

学习VB

TOP

C++ 学习的路很漫长,最后终于放弃了。
VB 学到最后觉得功能太弱。(这是我一个朋友说的),但是现在我也有同感。
Delphi 我是没有学过了。

TOP

li hai

TOP

想学不知从何下手[em03]

TOP

老潭那本《C程序设计第二版》
_________________________________-


那本书不怎么样,内容太浅,读完了连二级都过不了:cool:

TOP

C++比较难,还是学delphi吧

TOP

gg

TOP

hh

TOP

发新话题