【发布时间】:2021-09-30 04:04:13
【问题描述】:
在我的环境类中,我有一个私有静态成员变量:
class Environment {
public:
Environment(double air_density, Color background_color);
void create_new(const Part &object);
double get_air_density() const noexcept;
void set_air_density() noexcept;
Color get_background_color() const noexcept;
void set_background_color() noexcept;
std::vector<Part> get_objects() const noexcept;
void set_objects() noexcept;
private:
std::vector<Part> objects;
Color background_color;
//ERROR:
static constexpr Color default_background_color = Color({ 210, 210, 210 });
};
主要是我试图访问该变量:
int main() {
Environment environment(0.1, Environment::default_background_color); // ERROR: 'member "Environment::default_background_color" is inaccessible'
Part part(10, 10, 50, 50, false, 0, true);
environment.create_new(part);
while (running) {
part.update_position(0.1);
background(141, 3, 255);
part.draw();
render(dc);
}
}
所以我的问题是,出了什么问题,如何创建一个可以在 Environment 类之外访问的 const 静态变量?
【问题讨论】:
-
让它
public。如果您只希望它可访问以向构造函数提供默认值,请编写一个构造函数,将单个double作为其参数,然后使用default_background_color委托给两个参数的构造函数。 -
我没有看到静态变量
标签: c++ class static constants private