【问题标题】:C++: class atribute in local scopeC++:本地范围内的类属性
【发布时间】:2017-06-28 02:23:49
【问题描述】:

要创建自己的队列类,我需要在该类的函数中声明一个类属性。

我想做的是:

当我调用函数add 时,程序会私下为类创建一个新属性,以便在使用运算符[] 之后访问。通过这个,我可以创建一个没有类型限制的队列,使用任何类的项目。

有可能吗?

编辑

这个队列只是一个使用示例。我真正的问题是:在 python 中我可以这样做:

class Car:
    def __init__ (self, ...): 
        ...
        self.color = 'blue'

现在,color 可以在类的任何地方使用(请记住,在 python 中声明变量不需要插入类型。在示例中,color 是在__init__ 范围内声明的,但它是一个类属性,并且不是局部变量)。 我如何在 C++ 中做这样的事情?

【问题讨论】:

  • 元组?可变参数模板?

标签: c++ global-variables


【解决方案1】:

这个问题一开始就不清楚。 据我了解,您想创建一个包含异构元素的队列。您可以参考此答案以获取异构容器。

Heterogeneous containers in C++ 您还可以使用元组来保存异构数据。

【讨论】:

    【解决方案2】:

    您正在寻找的概念是成员变量,它必须是类定义的一部分,因为 C++ 不是动态类型的。要使其仅在班级中可见,请将其设为私有。然后你可以在构造函数初始化列表中设置它的值。

    class Car {
    public:
      Car : color("blue") { }
    private:
      std::string color;
    };
    

    【讨论】:

      猜你喜欢
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 2017-10-20
      • 2020-05-28
      相关资源
      最近更新 更多