【发布时间】:2015-01-20 15:24:48
【问题描述】:
我希望每个类都有自己的静态代码,可以从每个对象请求。我正在考虑这个,但它似乎不起作用:
#include <iostream>
class Parent {
protected:
static int code;
public:
int getCode();
};
int Parent::code = 10;
int Parent::getCode() {
return code;
}
class Child : public Parent {
protected:
static int code;
};
int Child::code = 20;
int main() {
Child c;
Parent p;
std::cout << c.getCode() << "\n";
std::cout << p.getCode() << "\n";
return 0;
}
它输出:
10
10
但我期待
20
10
【问题讨论】:
-
你的意思是“不工作”,也许你可以展示一些真实的代码和输出与预期的输出?
-
"我希望每个类都有自己的静态代码,可以从每个对象请求。"有一种东西叫做虚方法。
-
@Borgleader 这应该是一个答案。
-
@Borgleader 我看不出虚拟成员函数与此有什么关系。这里没有多态性。他所说的“代码”似乎是指一个整数值。
-
我用一段可编译、可运行的代码更新了我的问题。
标签: c++