大家写写学习C++最关键的要点和体会。

littleme741 2001-06-23 08:45:00
如果是泛泛的写上继承、封装或者多态这样的东西就免了。

如果只写指针,CONST之类的也就免了。

如果只写面向对象的思想之类的话也就免了。

最后能结合自己开发或者学习的体会写出对自己印象最深的几点,并且能够有相应的例子。

大家互相切磋。呵呵。

最后我会写一个总结给所有参与这个问题的同志,想来互相借鉴应该对大家都有帮助吧。
...全文
209 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
littleme741 2001-06-28
  • 打赏
  • 举报
回复
都说的非常好,有注重宏观讨论的,比如软件工程的作用和意义的。有注重细节分析的,比如const的作用描述的。也有对专家意见引用的。都写的不错。谢谢。请继续。
wqb 2001-06-28
  • 打赏
  • 举报
回复
侯捷语:
技术的本质并不是指技术的最底层,而是指技术的来龙去脉:(1) 为什麽发展出这项技术,(2) 它为了解决什麽问题,(3) 从问题的发生而後解决方案的诞生而後如何演化成现今的模式。有了这样的一个学习过程,技术很容易上手,操控自如,擒纵自如,记忆深刻。虽然看起来好像走了远路,似远实近。
myname_xie 2001-06-28
  • 打赏
  • 举报
回复
程序员的目标是什么:写程序,写出一流的程序,但IT人的目标是什么,我想只有自己才知道。

程序员完成的任务是一个软件里边最底层,最容易的工作,而一个软件真正需要你聪明才智的是
设计,总体设计,软件构架,思路等等的设计,而实现则是整个软件过程的一部分。所以,我不想
做程序员,但我必须先做程序员,因为不先学走路就学飞,飞得越高,摔得越重啊
顺便给大家几个有关于uml网站,有空去看看,在rational网站上应该有rose下载的
http://www.umlchina.com/
http://www.rational.com/uml/resources/documentation/index.jsp
http://search.zhaodaola.com/computer/software/program/uml/
myname_xie 2001-06-27
  • 打赏
  • 举报
回复
写得不好,请多指教!
Const使用方法
举一个函数
const char* const function( const int arg1 ) const;
如果你看到这样的一个函数的话,你是否觉得这个函数的书写有问题呢,其实这个函数的书写是完全正确的。
这个函数的虚参表是由一个const参数组成的,说明arg1在这个函数里边是安全的,它的值将不会被修改。
这个函数被声明为const类型的,也就是说在函数里边不存在由任何值被修改,也不能调用任何可能修改别的值的函数(当然你可以调用带const的函数)。
函数的返回值是个字符串指针,外部用户不能修改指针,也不能修改指针所指的字符串的任意一个字符。

Const在布尔类型中的应用
一般定义布尔类型都是这么定义的:
typedef int bool;
#define true 1
#define false 0
这种定义一般也不会出什么问题,LINUX下的STL中的bool类型就是这么定义的,但假如有这样的一个函数:
void fun( bool & b );
那么我们如果用fun( true )去调用它,那将会出错,幸运的是我们可以用另外一种方式去定义bool类型,
typedef int bool;
const bool true = (bool)1;
const bool false = (bool)0;
这样上面的问题也就解决了啊。

何时要使用const:
1. 如果在函数里边不会有任何值被修改或者不会调用任何可能发生改值的函数时,应该把该函数声明为const,同时这类函数也时线程安全的。如:void fun() const
2. 如果传进函数的参数不会被修改的话,也应该在参数声明前加const,如:
void fun( const int nArg );
3. 从类里边返回指针或引用时,应该使用const,如果不使用const的话,你也就失去了封装性了。如:
const char* CmyClass::getString();
4. 在整个生存期不会被修改的任何变量

为什么要使用const
1. 有利于实现数据的封装性
2. 使接口更加清晰
3. 便于测试和维护
myname_xie 2001-06-27
  • 打赏
  • 举报
回复
会写c++程序只能说是莽夫一个,只有真正掌握面向对象的分析和设计思想,熟悉使用CASE工具又能使用c++来实现自己想法的人才是真正有水平的人。c++,工具而已,而面向对象的分析和设计则是一门比写c++程序更具艺术性,大家在熟悉c++的过程中,不妨也看看一些软件工程方面的书,多接收面向对象的概念,多使用一些如rational rose 之类的工具,这样才能使你的开发效率达到最高,同时又保证你的软件的质量,这样的人才是有水平的人,只会写程序的人永远只能是莽夫一个,在计算机这个大千世界里边,你不能只满足于做一个优秀的c++程序员,那样你只能是井底青蛙啊
myname_xie 2001-06-27
  • 打赏
  • 举报
回复
我认为c++程序员应该:
1. 熟悉使用STL库
2. 掌握面向对象的分析方法
3. 必须熟悉unix编程,任何没有使用过unix的程序员不能算是个专业的程序员
vOLCANO 2001-06-27
  • 打赏
  • 举报
回复
其实确切的说不是在学rose,erwin等。而是学uml,等软件工程罢了。
vOLCANO 2001-06-27
  • 打赏
  • 举报
回复
难道程序员的目标都是成为系统分析员么?(程序-〉软件工程)
什么rose,erwin,………………真的是程序员。虽然我也在学?可是目标是不做程序。并不是做更好程序员。
littleme741 2001-06-27
  • 打赏
  • 举报
回复
请大家再继续啊。都写的很好。呵呵。
shirley1981 2001-06-27
  • 打赏
  • 举报
回复
ROSE 在那里有呢?HELP!
Elminster 2001-06-24
  • 打赏
  • 举报
回复
我最深的体会就是对于已经踏入 C++ 大门但还比较稚嫩的新手来说,没有什么比几本好书
更重要的了。

比如你上面的问题,“你说这个 const 很好,它好在哪里?什么地方必须用 const,不用
const会有什么后果?”,类似这样的深入讨论,在 Scott Meyers 所著的《Effective
C++》和《More Effective C++》中随处可见。带着存疑的态度去读这样的名著,反复咀
嚼,收益之大会连你自己也不相信。

还有一点就是实践,找一些足够大足够复杂的计划来印证自己的所学。

最后一点,别老泡在 BBS 上。
zepplin 2001-06-24
  • 打赏
  • 举报
回复
我个人觉得在学习使用C++过程中,能好好的使用虚函数以及运用它的面向对象概念自己概况出一个基类对象很重要,拿我们平时用的最多的按钮来说
不论什么控件都有些共同的属性,比如位置、长度、宽度、颜色、标题等等都是他们的基本属性,我们就可以把这些属性概况成控件的基类,而每个控件的外观又都不相同,这就是我们要在每个控件的派生类中改写的东西,这时我们就可以用到虚函数,用虚函数的好处就是我们可以在基类的某一函数中调用这个自画函数customDraw,而当程序编译执行时会执行当前派生类的这个函数内容,这就使我们能正确的的画出当前控件的样子。
这也只能说是大致谈谈,我觉得在这方面看MFC的思想,对学习C++会有帮助
rusteel 2001-06-24
  • 打赏
  • 举报
回复
我想提一个问题:如何进行Elminster()所说的“找一些足够大足够复杂的计划来印证自己的所学”?对于初学者来讲,这仿佛是很难的。
littleme741 2001-06-24
  • 打赏
  • 举报
回复
呵呵。Elminster()说的很对,不能老泡在BBS上。多谢兄台提醒。谢谢了。

大家请继续。
k320 2001-06-24
  • 打赏
  • 举报
回复
认真听课
myan 2001-06-24
  • 打赏
  • 举报
回复
Elminster说的对,学习C++特别要注意穿好鞋,走正道。市面上误导性的C++书实在太多,
初学者很少有不吃亏的。有的甚至在错误路线上走了很久还不自知。纠偏良药就是认真学习
业内公认的名著。
warrior 2001-06-24
  • 打赏
  • 举报
回复
重视编程思想的培养,不必太注重语言的细节。尽量利用c++的标准库STL,底层的算法大多不必重新设计了。
对语言的经验性的东西要有待于时间,当然看几本大师写的书是一种捷径。
写程序时要时刻记住用的是c++而不是C,;-)
littleme741 2001-06-24
  • 打赏
  • 举报
回复
hehe,讲的都很好了。
继续,继续。
littleme741 2001-06-23
  • 打赏
  • 举报
回复
谢谢回应,但是个人觉得比较泛泛一点。

我的希望是这样,比如你说这个const很好,它好在哪里?什么地方必须用const,不用const会有什么后果?

比如你说虚函数好,就要说出虚函数的实现机制,它的应用,它的优点,它对效率的影响等等。

千万不要太泛泛而谈,要不又成了空洞的讨论了。
wrongt 2001-06-23
  • 打赏
  • 举报
回复

从我个人的体会,有以下这些:
1、熟悉C++的语法结构和一些库函数!
2、经过上一步就有了C++知识,这一步是做项目准确理解C++的精髓!!
3、了解软件工程,进一步加深理解C++给我们带来的好处!!
经过以上四步,我想你会精通C++了!!

再有事给我发邮件:wrongt@163.com

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧