c++ - 在 C++ 中,可以在运行时设置/更改类属性 - 公共(public)、私有(private)或 protected 吗?

标签 c++ class attributes runtime

是否可以在运行时在 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, 柔软的

最佳答案

是编译器确保您不会访问 private 成员。一旦编译器完成其工作并生成二进制代码,所有关于私有(private)性的信息都会丢失。

所以不,你不能在运行时改变它。

我不知道您为什么要这样做,但是如果您希望某些函数在某些时候能够被调用,而其他函数则不能,您可以使用一个变量来定义它们是否可以被调用。然后,在该函数的顶部:

int Class::function(...)
{
    if (!function_is_allowed)
        return OPERATION_NOT_ALLOWED;
    ...
}

关于c++ - 在 C++ 中,可以在运行时设置/更改类属性 - 公共(public)、私有(private)或 protected 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515723/

相关文章:

c++ - 范围-v3 扁平化与移动

c# - 有条件属性时创建委托(delegate)

c++ - 如何根据 libxml++ 中的 relaxNG 模式验证 xml 文档

c++ - gsl_histogram_find 给出段错误(c++,gsl)

c++ - 与 jenkins 一起工作的最简单的 C++ 测试框架

c# - 这是做什么的,在哪里使用,它有什么用? C#类类型?

php - 如何在PHP中从PDF表单中提取字段值

python - 为什么 PyCharm 在此处使用 @property 时会发出警告?

c# - 类扩展 - 最佳实践/最佳解决方案

python - 在python中从字典中设置属性