方法声明后的const修饰符意味着什么? - 页 4 1234567 新评论 [删除] 2016.02.01 17:16 #31 Dmitry Fedoseev: 这不是你自己的,而是一个完全陌生的,具有相同类型的。什么不属于你?类型是一样的吗?你是说,一个恒定的方法 不能改变别人的类?而且在回答时,请更具体一些,我不明白你想说什么。 Dmitry Fedoseev 2016.02.01 17:19 #32 Alexey Kozitsyn:什么不属于你?类型是一样的吗?你是说,一个恒定的方法 不能改变别人的类?在回答时,请更明确一些,我不明白你的意思。 是你在写不可理解的东西 可以改变别人的任何类型的类,而且是与自己相同的类型。 Dmitry Fedoseev 2016.02.01 17:22 #33 简而言之。在一个常量方法 中,不可能改变常量方法所在的同一类中声明的变量的值(或在其父类中声明的变量)。是这样吗? [删除] 2016.02.01 17:24 #34 Dmitry Fedoseev: 是你不明白你在写什么 可以改变别人的任何类型和本身一样的类。也许你终究应该注意你所写的东西。一个方法如何能改变一个类?也许是一个类对象?而问题就在声明中。一个常量方法不能改变它的类成员。阿列克谢举了一个例子,它可以改变,所以我不认为这个说法是正确的,我想听听瓦西里的意见。 Dmitry Fedoseev 2016.02.01 17:28 #35 Alexey Kozitsyn:也许你终究应该注意你所写的东西。一个方法如何能改变一个类?也许是一个类对象?而问题就在声明中。阿列克谢举了一个例子,它可以改变,所以我认为这个说法是错误的,我想听听瓦西里的意见。你读得更有思想性如何?-"改变所声明的变量的 值"你怎么能谈论阿列克谢的论断呢?他不只是断言,他确认了它的真实性,举了一个例子,你可以把它扔进编辑器,看看它什么时候能编译,什么时候不能。 [删除] 2016.02.01 17:29 #36 Dmitry Fedoseev:简而言之。在一个常量方法 中,不可能改变常量方法所在的同一类中声明的变量的值(或在其父类中声明的变量)。是这样吗? 不,你知道一个类的每个对象都有自己在这个类中声明的一组变量,对吗?而一个常量方法不能只改变它所调用的对象(即集合)。 Dmitry Fedoseev 2016.02.01 17:29 #37 Alexey Kozitsyn:也许你终究应该注意你所写的东西。一个方法如何能改变一个类?也许是一个类对象?..像这样。 void bar(X& obj) const { obj._x = 42; // OK! obj передается по ссылке и не имеет модификатора const } Dmitry Fedoseev 2016.02.01 17:31 #38 Alexey Kozitsyn: 不,你知道一个类的每个对象都有自己在该类中声明的一组变量,对吗?而一个常量方法不能只改变它所调用的对象(即集合)。 打电话有什么关系呢?重要的是方法和变量的位置。如果方法和变量位于同一个类中,就不能被改变。如果该类是以引用作为参数传递的,你可以。 Dmitry Fedoseev 2016.02.01 17:43 #39 struct X { int _x, _y; void foo() const { _x = 42; // ERROR! метод объявлен, как const, не можем менять члены _y = 42; // ERROR! } void bar(Z& obj) const { obj._x = 42; // OK! obj передается по ссылке и не имеет модификатора const _x = 42; // ERROR! } void bar(Z const& obj) { obj._x = 42; // ERROR! obj передается по ссылке, как const obj._y = 42; // ERROR! obj передается по ссылке, как const _x = 42; // OK! метод объявлен без const на сонце } }; 这就更有意义了。 [删除] 2016.02.01 18:55 #40 Dmitry Fedoseev: 这电话跟它有什么关系?重要的是方法和变量的位置。如果方法和变量位于同一个类中,你就不能改变。如果该类是以引用作为参数传递的,你可以。 这里的难题是,如果A类的对象1调用A类的 一个常量方法,那么这个方法就不能改变那个对象1(即调用它的对象1)。然而,如果object1通过引用被传递到同一个常量方法,但是从A类的object2中调用,那么object1就可以被改变。而Object2则不能。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这不是你自己的,而是一个完全陌生的,具有相同类型的。
什么不属于你?类型是一样的吗?
你是说,一个恒定的方法 不能改变别人的类?
而且在回答时,请更具体一些,我不明白你想说什么。
什么不属于你?类型是一样的吗?
你是说,一个恒定的方法 不能改变别人的类?
在回答时,请更明确一些,我不明白你的意思。
简而言之。在一个常量方法 中,不可能改变常量方法所在的同一类中声明的变量的值(或在其父类中声明的变量)。是这样吗?
是你不明白你在写什么 可以改变别人的任何类型和本身一样的类。
也许你终究应该注意你所写的东西。一个方法如何能改变一个类?也许是一个类对象?
而问题就在声明中。
一个常量方法不能改变它的类成员。
阿列克谢举了一个例子,它可以改变,所以我不认为这个说法是正确的,我想听听瓦西里的意见。
也许你终究应该注意你所写的东西。一个方法如何能改变一个类?也许是一个类对象?
而问题就在声明中。
阿列克谢举了一个例子,它可以改变,所以我认为这个说法是错误的,我想听听瓦西里的意见。
你读得更有思想性如何?-"改变所声明的变量的 值"
你怎么能谈论阿列克谢的论断呢?他不只是断言,他确认了它的真实性,举了一个例子,你可以把它扔进编辑器,看看它什么时候能编译,什么时候不能。
简而言之。在一个常量方法 中,不可能改变常量方法所在的同一类中声明的变量的值(或在其父类中声明的变量)。是这样吗?
也许你终究应该注意你所写的东西。一个方法如何能改变一个类?也许是一个类对象?
..
像这样。
不,你知道一个类的每个对象都有自己在该类中声明的一组变量,对吗?而一个常量方法不能只改变它所调用的对象(即集合)。
这电话跟它有什么关系?重要的是方法和变量的位置。如果方法和变量位于同一个类中,你就不能改变。如果该类是以引用作为参数传递的,你可以。