方法声明后的const修饰符意味着什么? - 页 2

 
Vasiliy Sokolov:
恒定的方法 是 "我们想做得更好,但结果还是和以前一样 "这句谚语的另一个例子。我认为这根本就是C++的箴言。它没有实际用途,但它使OOP-程序的设计明显复杂化,因为你需要不断地控制被修改的对象的类型(它也必须是常数)。

我可以举个例子说明你写的是什么吗?

 
Vasiliy Sokolov:
恒定的方法 只是 "我们想让事情变得更好,但结果却和往常一样 "这一谚语的另一个例子。我认为这根本就是C++的座右铭。它没有什么实际用途,但它使OOP程序的设计大大复杂化,因为你不断地需要控制被修改对象的类型(它也必须是常数)。

)))我有一本Stroustrup的旧书躺在身边,如果小偷闯入房子,我可以轻松地用它打掉他们,它像一块砖头一样重))。老人把这么多的麻烦放在他的舌头上......。

我记得很久以前,我在一次工作面试中被追问,他们问我一个问题,我无法准确回答。他们给我带来了这样一本书,我看了看,然后我问:"你自己用吗?

我问:--你自己用吗?--伙计们都笑了,没关系,还没有人正确回答这个问题,因为没有人用它。

顺便说一下,我有一本90年代初的关于pluses的书,在第一个标准被采用之前。一本正常的可消化的平装书。但后来奥斯塔普得意忘形了 ))

 
Alexey Kozitsyn:

能否举个例子说明你所写的内容?

阿列克谢写了一个例子。一个常量方法不能改变它的类成员。似乎是什么问题?只要不使用const修改器就可以了。但在继承中也有困难(特别是来自标准库 的):设计者定义了虚拟方法const,但在派生类中,方法需要改变其数据中的一些东西--由于const的存在,有一个插头。没有它,该方法将不会被重载,而有了它,派生方法就不能改变自己的类数据。

为类方法引入这样一个修饰语的主要错误是什么?违反了继承的主要原则:专业化和精细化。基类禁止派生类方法处理其内部数据。而不应该有这样的情况。

 
Vasiliy Sokolov:

夏普有一英里远的气味))。

没有什么制约阻碍,没有必要喋喋不休。

 
Комбинатор:

夏普有一英里远的气味))。

我并不否认这一点。夏普真的是一种完美、伟大和美丽的语言。

组合器

建设不会使任何事情复杂化,不要胡说八道

好吧,让我们说,一个人总是可以摆脱约束的。但你为什么不举例简单解释一下,const是做什么的?它的真正用途是什么?通过实例,最好不要凭空写出。

 
构建是C++的一个醒目的隐喻:首先你勤奋地在代码中布满精心设计的陷阱,然后你走出自己的陷阱--这就是C++编程的整个过程。
 
Vasiliy Sokolov:

...

为类方法引入这样一个修饰语的主要错误是什么?违反了继承的主要原则:专业化和精细化。基类禁止派生类的方法处理其内部数据。但绝不能有这样的事情发生。

也许这是由创作者传递给简单用户的某些部分。像专家顾问中的开始功能和买入和卖出变量。

当你自己做所有的东西时,就没有必要为各种约束而烦恼。

 
Vasiliy Sokolov:

我并不否认这一点。夏普的确是一种完美、伟大和美丽的语言。

...

很好。但它离完美还有很长的路要走。
 
Dmitry Fedoseev:
很好。但它离完美还有很长的路要走。
夏普》是好的,不是因为制作它的任何天才,而是因为它是最后一部。在这之前的30年里,他们试图用各种尺寸和奇特的配置的耙子来杀人。C++是它的一个美妙的试验场。在所有人都被杀了之后,微软的人就这样被干掉....采用了久经考验的概念,并从头开始创建了一种句法简洁的语言。
 
顺便说一下,MetaQuotes也有很好的机会将MQL5逐渐 "发展 "成一个类似于C++的罗伯怪物。但在C++方面的深厚知识(其中一定有汗水、泪水和仇恨)使他们意识到,他们不应该听从论坛中老派C++程序员的建议。这就是为什么我们现在有了一种句法干净、或多或少严格类型化的编程语言。甚至令人惊讶的是,我们设法在完全畸形的遗产基础上创造了这样一种糖果。掌握的东西不能丢,正如他们所说。