【发布时间】:2015-09-09 11:58:28
【问题描述】:
如何从 C++ 中的静态方法更改对象属性?我的方法必须是静态的。
代码:
class Wrapper
{
private:
double attribute; //attribute which I want to change
public:
Wrapper();
~Wrapper();
static void method(double x);
}
我试过了:
std::string Wrapper::method(double x)
{
attribute = x;
}
但是:
error: invalid use of member ‘Wrapper::attribute’ in static member function
【问题讨论】:
-
假设你有 10 个 Wrapper 对象,这个静态方法怎么知道应该修改哪一个? :) 如果您真的想要这个,请将 Wrapper 对象引用传递给方法函数。
-
这是一种对象,只会被创建一次。
-
那为什么不简单地将
attribute也设为静态呢?或者也许将班级变成单身人士? -
@wair92 对于这个问题,这里有数百个问题和答案,更不用说更大的互联网上的数千个问题了。
-
@wair92:你应该在某个地方定义你的静态变量。
标签: c++ static-methods