【发布时间】:2012-05-17 22:43:15
【问题描述】:
是否可以在C++语言中在运行时更改类属性。例如如下:
class base
{
public:
//public members
private :
//private members
};
class derived1 : attribute base
{
public:
//public members
base::<base method name> //so that it an be made accessible from the main - outside the class.
private:
//private members
};
属性-public,private,protected 可以在运行时动态更改吗?
Rgds, 软软的
【问题讨论】:
-
在您的示例中,受保护的方法在编译时变为公共,而不是在运行时。通常,C++ 中的私有/受保护/公共区别在运行时会消失,因为该语言不允许 反射。这会使您的问题毫无意义,除非您的意思完全不同。
-
告诉我们您为什么想要这个,我们可以向您展示更好的方法。
-
我不能详细告诉你,但考虑一下这个高层次的想法。一个游戏角色正在尝试访问权力(一个类功能),但他只有在获得 X(一些权力1类;s 功能)时才能访问它们,如果他试图访问权力而没有获得权力1,他将不会允许(除非他拥有power1,否则不允许继承权力),以至于一旦继承了power1就改变power的属性,以便可以访问其功能(可以使用power)。它的想法很乱,但我希望你能得到这个想法。你有吗
标签: c++ class attributes runtime