Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;使用不同类的公共变量 我想从C++中的不同类中访问公共变量。我做这件事有困难。例如,我有 class A{ public: int x; int getX(); };_C++_Oop - Fatal编程技术网

C++;使用不同类的公共变量 我想从C++中的不同类中访问公共变量。我做这件事有困难。例如,我有 class A{ public: int x; int getX(); };

C++;使用不同类的公共变量 我想从C++中的不同类中访问公共变量。我做这件事有困难。例如,我有 class A{ public: int x; int getX(); };,c++,oop,C++,Oop,在那之后,我想在aB类中使用x。类A和类B之间没有继承关系,它们只是两个独立的类。问题是,在类B中,我没有类型为A的对象,因此我无法调用函数getX。 您能告诉我在B类中使用变量x(定义见a)的方法吗? 谢谢我认为您需要将它们定义为静态的 class A { public: static int x; } 在B类中,您可以访问它 A::x; 但是x只有一个实例,它将在A类的所有对象之间共享。b类 class b { public: void member functi

在那之后,我想在a
B类中使用
x
。类A和类B之间没有继承关系,它们只是两个独立的类。问题是,在
类B
中,我没有类型为
A
的对象,因此我无法调用函数
getX
。 您能告诉我在B类中使用变量
x
(定义见
a
)的方法吗?
谢谢

我认为您需要将它们定义为静态的

class A {
   public:
     static int x;
}
在B类中,您可以访问它

A::x;
但是x只有一个实例,它将在A类的所有对象之间共享。

b类
class b
{
public:
    void member function(const a &instance)
    {
        cout<<a.x;
    }
};
{ 公众: 无效成员函数(常量a和实例) {
可以将您的问题与或生成对象一起使用。数据成员仅存在于对象中。可能您需要生成类
a
的单例实例?我想您可能会混淆类和对象的区别,请参阅此链接以获取参考如何生成类a的单例实例?我确信我知道uld可以在类B中使用函数getX(),但是否可以在没有类A对象的情况下使用它?