方法声明后的const修饰符意味着什么? - 页 5 1234567 新评论 Dmitry Fedoseev 2016.02.01 19:06 #41 Alexey Kozitsyn: 这里所说的是,如果A类的对象1调用A类的 一个常量方法,那么该方法不能改变该对象1(即调用它的对象1)。然而,如果object1通过引用被传递到同一个常量方法,但是从A类的object2中调用,那么object1就可以被改变。而Object2则不能。一个对象如何调用一个方法?一个方法可以从一个函数或另一个方法中调用。它不仅仅是一个被调用的类方法,而是一个特定对象的方法。该类本身就是一个抽象概念。 [删除] 2016.02.01 19:15 #42 Dmitry Fedoseev:一个对象如何调用一个方法?一个方法可以从一个函数或另一个方法中调用。它不仅仅是一个被调用的类方法,而是一个特定对象的方法。该类本身就是一个抽象概念。这才是最微不足道的。和一个类型的记录obj.method();它叫什么?你是自己写的。它不仅仅是一个被调用的类方法,而是一个特定对象的方法。你也可以说这是可以接受的。method();什么是方法调用?也就是说,由什么方法来调用? Dmitry Fedoseev 2016.02.01 19:27 #43 @Alexey Kozitsyn:这是个难题。而像这样的条目...这叫什么?你自己写吧。你告诉我这是允许的。什么是方法调用?就是说,用什么方法来调用它?看看这个情况。你有问题,不是我。阿列克谢的例子对你来说似乎是不正确的,而对我来说却很清楚和可以理解。--"一个类型条目 "被称为对 "obj "对象的 "方法 "的调用。--"你还会告诉我,这样的记录是可以允许的"--印象中,你才是写这样的事情的人。---该方法没有调用任何东西。该方法被调用。 [删除] 2016.02.01 19:35 #44 Dmitry Fedoseev:看看现在的情况。是你,而不是我,感到困惑。阿列克谢的例子在你看来是不正确的,而在我看来却足够清楚和明白,它没有引起我的任何疑问,只是给了我一个理解。--"一个类型条目 "被称为对 "obj "对象的 "方法 "的调用。--"你还会告诉我,这样的记录是可以允许的"--印象中,你才是写这样的事情的人。---该方法不调用任何东西。该方法被调用。阿列克谢的例子是可以接受的,但在我个人看来,它不应该成为其他人的榜样。你看,你仍然没有回答我的问题:是什么启动了一个类的方法 调用(或者说,是什么调用了一个方法(不是通过一个方法调用了什么,而是什么/谁调用了这个方法本身))?任何方法。这是个简单的问题,你为初学者写了一篇关于OOP的文章。一个方法并不调用任何东西。该方法被调用。 那么,它是用什么来称呼呢? Dmitry Fedoseev 2016.02.01 19:39 #45 Alexey Kozitsyn:1.阿列克谢的例子可以接受,但在我个人看来,他不应该成为其他人的榜样。2.你看,你还是没有回答我的问题:是什么初始化了一个类的方法 调用(或者说,是什么调用了一个方法(不是通过一个方法调用了什么,而是什么/谁调用了这个方法本身))?3. 任何方法。这是个简单的问题,你为初学者写了一篇关于OOP的文章。1.请提出你自己的例子。2.没有回答。因为我不知道我们在谈论什么。3.我也不知道我们在说什么。 Dmitry Fedoseev 2016.02.01 19:48 #46 void fun(){ obj.method(); } obj "对象的 "method "方法被 "fun "函数调用。 [删除] 2016.02.01 20:04 #47 Dmitry Fedoseev:1.提供你自己的例子。2.没有回答。因为我不知道我们在谈论什么。3.我也不知道我们在说什么。2.讨论的是调用类方法的问题(而不是静态方法)。该类的方法由该类的对象调用,否则,该类的对象发起对该类方法的调用,例如,这个。obj.method(); // obj - объект класса А, method() - метод класса А如果该方法是常量,它就不能修改通过它调用的对象,即obj对象。另一方面,一个对象(如obj2)传递给它。obj.method( obj2 );如果通过引用传递而不使用const修饰符,则可以被修改。这就是全部。我最初并不理解论坛 "corefeys "的说法。 关于交易、自动交易系统和测试交易策略的论坛 方法声明后的const修饰语是什么意思 Combinator, 2016.01.31 20:32 在C++中,它意味着该方法不能改变类的成员,除了被声明为可变的成员。由于在MQL中你无法得到这样的东西,这意味着该方法原则上不能改变对象。或 关于交易、自动交易系统和策略测试的论坛 方法声明后的const修饰语是什么意思? Vasiliy Sokolov, 2016.02.01 11:55 一成不变的方法 是谚语 "我们试图做得更好,但结果还是和以前一样 "的另一个例子。我认为这根本就是C++的箴言。没有实际用途,但它使OOP-程序的设计明显复杂化,因为你经常需要控制修改对象的类型(它也必须是常数)。或 关于交易、自动交易系统和测试交易策略的论坛 方法声明后的const修饰语是什么意思 Vasiliy Sokolov, 2016.02.01 14:02 例子 阿列克谢写道。常量方法不能改变其类的成员... 那么,为什么它不能这样做呢?一切都变化得很好。而且措辞本身也不正确:一个常量方法不能改变其类的实例 的成员。 Alexey Volchanskiy 2016.02.02 00:34 #48 Vasiliy Sokolov:我并不否认这一点。夏普的确是一种完美、伟大和美丽的语言。好吧,让我们说,你总是可以摆脱约束。但你最好用一个例子简单解释一下,是什么原因导致了const?它的真正用途是什么?通过实例,最好不要凭空写出。当你为自己写一个项目,整个项目 有几千个--几万个字符串,这是一回事。当你把一个几百万行的项目交给客户,而一个印度教的哈里克里希纳却坐在那里毫无头绪,这又是另一回事。我和来自班加罗尔的印度人一起工作,水平实际上比我们的人要低。就像在那里:他们作为程序员接受培训,带着其余的亲戚去工作,他们可能根本就不知道什么。他们是吉普赛人。而且,如果关键代码被打包到一个libu中,那么损坏的机会就会减少。这就是我的想法。 Dmitry Fedoseev 2016.02.02 03:50 #49 Alexey Kozitsyn:...为什么不可以?一切都可以改变就好了。而且措辞本身也不正确:一个常量方法不能改变其类的实例 的成员。这就是我的意思,因为我们在这里说的不是类型。"自己的类 "显然是它自己的实例(即对象)。 void bar(X& obj) const { obj._x = 42; // Здесь меняем члена не своего класса OK! obj передается по ссылке и не имеет модификатора const _x = 42; // Попытка изменить члена своего класса ERROR! }_x 成员与bar方法属于同一类别。C obj._x - 这里的_x成员是在一个外国类obj中。对我来说,谈论一个类而不是一个实例似乎是可以接受的,因为很明显,_x属于我们的类,我们写的,而obj.x属于外国的类,我们处理的。说到OOP术语,这里的所有术语都有点这个意思(甚至是很多)。 Georgiy Merts 2016.02.02 05:13 #50 就我个人而言,我一直把const-methods理解为不能改变类变量的方法。 我很少使用它们,因为我经常遇到这样的情况:方法的重新定义需要改变一些东西,而基础方法是不变的(这里已经提到过)。 静态方法得到了广泛的使用。在几乎任何复杂的类中。通常,这些都是 "服务性 "的附加方法,不需要访问类的变量。 此外,对于像 "一天中的秒数 "这样的常数,我尽量使用静态常数,而不是#define。在这种情况下,这种常量的声明和初始化是在不同的地方,但类型控制出现了,而且它不止一次地帮助我。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这里所说的是,如果A类的对象1调用A类的 一个常量方法,那么该方法不能改变该对象1(即调用它的对象1)。然而,如果object1通过引用被传递到同一个常量方法,但是从A类的object2中调用,那么object1就可以被改变。而Object2则不能。
一个对象如何调用一个方法?一个方法可以从一个函数或另一个方法中调用。
它不仅仅是一个被调用的类方法,而是一个特定对象的方法。该类本身就是一个抽象概念。
一个对象如何调用一个方法?一个方法可以从一个函数或另一个方法中调用。
它不仅仅是一个被调用的类方法,而是一个特定对象的方法。该类本身就是一个抽象概念。
这才是最微不足道的。和一个类型的记录
它叫什么?
你是自己写的。
它不仅仅是一个被调用的类方法,而是一个特定对象的方法。
你也可以说这是可以接受的。
什么是方法调用?
也就是说,由什么方法来调用?
这是个难题。而像这样的条目...
这叫什么?
你自己写吧。
你告诉我这是允许的。
什么是方法调用?
就是说,用什么方法来调用它?
看看这个情况。你有问题,不是我。阿列克谢的例子对你来说似乎是不正确的,而对我来说却很清楚和可以理解。
--
"一个类型条目 "被称为对 "obj "对象的 "方法 "的调用。
--
"你还会告诉我,这样的记录是可以允许的"--印象中,你才是写这样的事情的人。
---
该方法没有调用任何东西。该方法被调用。
看看现在的情况。是你,而不是我,感到困惑。阿列克谢的例子在你看来是不正确的,而在我看来却足够清楚和明白,它没有引起我的任何疑问,只是给了我一个理解。
--
"一个类型条目 "被称为对 "obj "对象的 "方法 "的调用。
--
"你还会告诉我,这样的记录是可以允许的"--印象中,你才是写这样的事情的人。
---
该方法不调用任何东西。该方法被调用。
阿列克谢的例子是可以接受的,但在我个人看来,它不应该成为其他人的榜样。
你看,你仍然没有回答我的问题:是什么启动了一个类的方法 调用(或者说,是什么调用了一个方法(不是通过一个方法调用了什么,而是什么/谁调用了这个方法本身))?
任何方法。这是个简单的问题,你为初学者写了一篇关于OOP的文章。
一个方法并不调用任何东西。该方法被调用。
1.阿列克谢的例子可以接受,但在我个人看来,他不应该成为其他人的榜样。
2.你看,你还是没有回答我的问题:是什么初始化了一个类的方法 调用(或者说,是什么调用了一个方法(不是通过一个方法调用了什么,而是什么/谁调用了这个方法本身))?
3. 任何方法。这是个简单的问题,你为初学者写了一篇关于OOP的文章。
1.请提出你自己的例子。
2.没有回答。因为我不知道我们在谈论什么。
3.我也不知道我们在说什么。
void fun(){ obj.method(); }obj "对象的 "method "方法被 "fun "函数调用。1.提供你自己的例子。
2.没有回答。因为我不知道我们在谈论什么。
3.我也不知道我们在说什么。
2.讨论的是调用类方法的问题(而不是静态方法)。该类的方法由该类的对象调用,否则,该类的对象发起对该类方法的调用,例如,这个。
obj.method(); // obj - объект класса А, method() - метод класса А如果该方法是常量,它就不能修改通过它调用的对象,即obj对象。另一方面,一个对象(如obj2)传递给它。
如果通过引用传递而不使用const修饰符,则可以被修改。这就是全部。
我最初并不理解论坛 "corefeys "的说法。
关于交易、自动交易系统和测试交易策略的论坛
方法声明后的const修饰语是什么意思
Combinator, 2016.01.31 20:32
在C++中,它意味着该方法不能改变类的成员,除了被声明为可变的成员。
由于在MQL中你无法得到这样的东西,这意味着该方法原则上不能改变对象。
或
关于交易、自动交易系统和策略测试的论坛
方法声明后的const修饰语是什么意思?
Vasiliy Sokolov, 2016.02.01 11:55
一成不变的方法 是谚语 "我们试图做得更好,但结果还是和以前一样 "的另一个例子。我认为这根本就是C++的箴言。没有实际用途,但它使OOP-程序的设计明显复杂化,因为你经常需要控制修改对象的类型(它也必须是常数)。或
关于交易、自动交易系统和测试交易策略的论坛
方法声明后的const修饰语是什么意思
Vasiliy Sokolov, 2016.02.01 14:02
例子 阿列克谢写道。常量方法不能改变其类的成员...
我并不否认这一点。夏普的确是一种完美、伟大和美丽的语言。
好吧,让我们说,你总是可以摆脱约束。但你最好用一个例子简单解释一下,是什么原因导致了const?它的真正用途是什么?通过实例,最好不要凭空写出。
当你为自己写一个项目,整个项目 有几千个--几万个字符串,这是一回事。当你把一个几百万行的项目交给客户,而一个印度教的哈里克里希纳却坐在那里毫无头绪,这又是另一回事。我和来自班加罗尔的印度人一起工作,水平实际上比我们的人要低。
就像在那里:他们作为程序员接受培训,带着其余的亲戚去工作,他们可能根本就不知道什么。他们是吉普赛人。
而且,如果关键代码被打包到一个libu中,那么损坏的机会就会减少。这就是我的想法。
...
这就是我的意思,因为我们在这里说的不是类型。"自己的类 "显然是它自己的实例(即对象)。
_x 成员与bar方法属于同一类别。
C obj._x - 这里的_x成员是在一个外国类obj中。
对我来说,谈论一个类而不是一个实例似乎是可以接受的,因为很明显,_x属于我们的类,我们写的,而obj.x属于外国的类,我们处理的。
说到OOP术语,这里的所有术语都有点这个意思(甚至是很多)。
就我个人而言,我一直把const-methods理解为不能改变类变量的方法。
我很少使用它们,因为我经常遇到这样的情况:方法的重新定义需要改变一些东西,而基础方法是不变的(这里已经提到过)。
静态方法得到了广泛的使用。在几乎任何复杂的类中。通常,这些都是 "服务性 "的附加方法,不需要访问类的变量。
此外,对于像 "一天中的秒数 "这样的常数,我尽量使用静态常数,而不是#define。在这种情况下,这种常量的声明和初始化是在不同的地方,但类型控制出现了,而且它不止一次地帮助我。