免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3210 | 回复: 17
打印 上一主题 下一主题

面向对象就那么好? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-24 09:55 |只看该作者 |倒序浏览
最近又重拾C++,看教材上有这样的例子。很多教材上也有类似的。
  1. class student
  2. {
  3. private: string name;
  4.             int score,age;
  5. public:
  6. setname();
  7. getname();
  8. setscore();
  9. getscore();
  10. setage();
  11. getage();
  12. }
复制代码
像设定学生数据这种事情,用类来做,感觉太繁琐了!用结构来做岂不是更好?
  1. struct student
  2. {
  3. string name;
  4. int score,age;
  5. }
复制代码
然后在需要设定学生信息的时候,直接用赋值。
  1. student.name="wang";
  2. student.age=10;
  3. student.score=60;
复制代码
这样不是更好,更明了?也许还更“高效”。

所以,我认为,面向对象(OO)跟面向过程的结构化编程,同属于编程思维方式的一种,泛型也算一种。但是不应该成为思维定势,什么都用类和对象。马克思哲学不是说吗?具体问题具体分析,用正确的方法处理正确的问题。

新手的一点体会,还请大家指正。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2010-02-24 10:03 |只看该作者
支持楼主。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
3 [报告]
发表于 2010-02-24 10:05 |只看该作者
既然是新手就多看书少发帖。看了一遍不明白就再看一遍。看明白了你就知道啥时候该用面向对象,啥时候该用面向过程。
另外泛型是编译时多态,可以说是一种技术,跟编程思想不一样。
btw,多看看大师的大作,不要看老谭之流的C++

论坛徽章:
0
4 [报告]
发表于 2010-02-24 10:16 |只看该作者
回复 3# koolcoy

谢谢。
正开始看Stroustrup的《The C++ Programming Language》。太厚了。C++太难学了,东西太多。
在网上还搜到这么一篇,蒙得我一愣一愣地。
<C++的思索(C++之父访谈录.htm)>
也不知道是真的假的。

不过还是要学啊。找工作时人家都问会不会C++。我只盼能回答“会一些”就好了,不敢指望能给人家说“精通C++”或者“熟练掌握C++”。

论坛徽章:
0
5 [报告]
发表于 2010-02-24 10:25 |只看该作者
{:3_190:},擦。
上面这段c++代码还是很经典的吧,只是为了表达一种抽象的概念。
面向对象的一个好处是,规定了接口,可以让不同思维程度的人,达到共识,
可以让大家像机器一样,而且是并行的工作。定义一个类,这个类就可以让别人去实现了。

你可以定义个结构体,但是你定义出结构体,并没有表明这个结构体的方法,设置用户名这些方法,
没有定义出来,也就是隐藏在你思维里面的方法,代码里到处是string="";这种语句,出现错误,就必须调
整块代码,而放在类中,出现错误,则是这个类出了问题。你一个string=""已经包含了很多面向对象的思想了,还问“面向对象就那么好?'

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
6 [报告]
发表于 2010-02-24 11:11 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2010-02-24 11:35 |只看该作者
C++得会用那一堆的高级货,还有那一堆的库。。

论坛徽章:
0
8 [报告]
发表于 2010-02-24 11:39 |只看该作者
封装性,面向对象基础概念和优势之一。主要是这个例子太挫,但是不挫的例子新手学起来又很吃力,所以真到了分析面向对象好坏的时候,千万别用这个垃圾例子。

论坛徽章:
0
9 [报告]
发表于 2010-02-24 11:51 |只看该作者
楼上说的不错,但是能否举个好的例子。真诚求教,没有各应的意思。

论坛徽章:
0
10 [报告]
发表于 2010-02-24 13:07 |只看该作者
凡是简单的例子,都只能说明面向对象的形,说明不了面向对象的精粹,毕竟这个东西是需要有一定规模,且有一定的重用时,才能体现出其优势。

所以这个东西没什么好争论的,老老实实写上几万行代码,推倒重来几遍,找朴素一点的高手评价一下,再将其中公用部分在多个不同项目中用用,差不多就有点感觉了。

至于别人对面向对象的吹捧或者痛骂,看看就算,别当真。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP