在c ++中是否可以在不创建对象的情况下访问其他类中的类变量。我试图使用静态,但另一个类不识别我的变量。 我有3节课。其中两个应该使用sae变量。在第三节课中,我正在改变价值观。如果你能提供帮助,将不胜感激。也许你有一个例子。
答案 0 :(得分:3)
static
是正确的关键字:
class A {
public:
static int i; // <-- this is a class variable
};
class B {
public:
void f() { A::i = 3; } // <-- this is how you access class variables
};
他们只能想到的潜在问题是
protected
或private
,因此无法从其他代码中访问它。A::
)。答案 1 :(得分:3)
class Myclass
{
public:
static int i;
};
int Myclass::i = 10;
class YourClass
{
public:
void doSomething()
{
Myclass::i = 10; //This is how you access static member variables
}
};
int main()
{
YourClass obj;
obj.doSomething();
return 0;
}
答案 2 :(得分:0)
我认为Singleton Pattern会有所帮助,但我并不喜欢它。更好的设计是让一个类获得对象的所有权,并将对该对象的引用传递给其他类。
答案 3 :(得分:-2)
是的,可以尝试一下
结构车{
string model;
string paint;
int price;
};
int main(){
// creates an object of the class car
car BMW;
// assign the values
bmw.model = "m sports";
bmw.paint ="red";
bmw.price = 24000;
}