一个关于类的重要问题

时间:2021-05-05 14:13:42
有时,在使用类时感到牵强附会,好象用Structure就可以了。
究竟何时该做何选择呢?
请不要光用封装、层次、抽象、多态等术语,希望是来自实践的归纳总结。
如果有名家的相关文章,同样非常感谢!

9 个解决方案

#1


http://www.csdn.net/expert/Topic/142/142319.shtm

#2


当你不再以数据、算法的观点看待程序
而是以一种更接近自然的方法,那么类和对象就是很自然的事

#3


学习~

#4


up

#5


很简单的,侒自然的思维模式思考就行了

#6


如果你使用类,一个类中的变量及函数就不会和其他的同名变量和函数混用
函数及变量的引用非常容易

#7


用什么方式只是形式,关键是你能否运用自如。

#8


谢谢holyfire(^@L@^)推荐的文章,好文啊,作者一定是个高手,文笔也好。让我学了很多东西。

有十年没写程序了,初次接触OOP是SmallTalk,装在一台386DX33的机器上,Win3.0,内存16M,
硬盘110M,速度慢得不可思议,SmallTalk是100%的面向对象,在操作系统上再生成一个虚拟机器,虚拟机是一棵继承关系形成的树,对象都是这棵树的枝叶,再小的程序都得背着这棵树,运行根本无法脱离虚拟机,现在看来没有什么商业价值,但当时感觉真是奇妙啊。

在只有一本简略的英文手册的条件下,经过两周的摸索,我决定尝试编一个小的游戏,真是一个既兴奋又痛苦的经历。我早上9点带着方便面、热水器进机房,第二天早上7点终于完成。现在回忆当时感觉每个对象就像在内存中的活物,自动地对外界的刺激做出反应,并发出刺激,同时非常难以驾御。

C++真得很不一样,怎么说都是个半吊子的OOP,但是从古到今,总是中庸之道最成功,你总不能让每个程序后面背棵树。Windows本身现在就给我这样的感觉,又重又涩,功能很多但大多数你很少用甚至永远不会去用,还经常出现各种问题。生活在这样恶劣的环境里,我们这些技术人员,要么是天才要么是疯子或者是为了生存。

对不起,离题太远了。
不知名仁兄的文章好在那里?我认为他是让我们关注C++底层的东西,C是个半吊子的高级语言,但他和计算机本身最贴近,C++继承了C的优点,又增加了OOP以及很多好东西,一方面他提高了你的效率,一方面他使你的代码更可靠,同时又不会让你的程序背上一棵树。
至于虚拟基类和继承,只有建设VCL这样的大家伙,才能体现出最大的优越性,VCL可真是一棵好树啊,再加上事件委托机制,真是让一个个组件有些活灵活现。

自行车怎么传宗接代也上变不成电脑,OOP也不是快速原型。如果我对自行车的要求很明确,根本就不要制造一部部虚拟自行车逐步逼近。我的类也很难对别人有用。
如果树上结的果不是你要的,
你也不可能去改他的根,
否则就会树非树、果非果、根非根。
如果整棵树都是你做的,你为什么不直接做个果呢?

#9


这个问题还需要其他答案

#1


http://www.csdn.net/expert/Topic/142/142319.shtm

#2


当你不再以数据、算法的观点看待程序
而是以一种更接近自然的方法,那么类和对象就是很自然的事

#3


学习~

#4


up

#5


很简单的,侒自然的思维模式思考就行了

#6


如果你使用类,一个类中的变量及函数就不会和其他的同名变量和函数混用
函数及变量的引用非常容易

#7


用什么方式只是形式,关键是你能否运用自如。

#8


谢谢holyfire(^@L@^)推荐的文章,好文啊,作者一定是个高手,文笔也好。让我学了很多东西。

有十年没写程序了,初次接触OOP是SmallTalk,装在一台386DX33的机器上,Win3.0,内存16M,
硬盘110M,速度慢得不可思议,SmallTalk是100%的面向对象,在操作系统上再生成一个虚拟机器,虚拟机是一棵继承关系形成的树,对象都是这棵树的枝叶,再小的程序都得背着这棵树,运行根本无法脱离虚拟机,现在看来没有什么商业价值,但当时感觉真是奇妙啊。

在只有一本简略的英文手册的条件下,经过两周的摸索,我决定尝试编一个小的游戏,真是一个既兴奋又痛苦的经历。我早上9点带着方便面、热水器进机房,第二天早上7点终于完成。现在回忆当时感觉每个对象就像在内存中的活物,自动地对外界的刺激做出反应,并发出刺激,同时非常难以驾御。

C++真得很不一样,怎么说都是个半吊子的OOP,但是从古到今,总是中庸之道最成功,你总不能让每个程序后面背棵树。Windows本身现在就给我这样的感觉,又重又涩,功能很多但大多数你很少用甚至永远不会去用,还经常出现各种问题。生活在这样恶劣的环境里,我们这些技术人员,要么是天才要么是疯子或者是为了生存。

对不起,离题太远了。
不知名仁兄的文章好在那里?我认为他是让我们关注C++底层的东西,C是个半吊子的高级语言,但他和计算机本身最贴近,C++继承了C的优点,又增加了OOP以及很多好东西,一方面他提高了你的效率,一方面他使你的代码更可靠,同时又不会让你的程序背上一棵树。
至于虚拟基类和继承,只有建设VCL这样的大家伙,才能体现出最大的优越性,VCL可真是一棵好树啊,再加上事件委托机制,真是让一个个组件有些活灵活现。

自行车怎么传宗接代也上变不成电脑,OOP也不是快速原型。如果我对自行车的要求很明确,根本就不要制造一部部虚拟自行车逐步逼近。我的类也很难对别人有用。
如果树上结的果不是你要的,
你也不可能去改他的根,
否则就会树非树、果非果、根非根。
如果整棵树都是你做的,你为什么不直接做个果呢?

#9


这个问题还需要其他答案