C++如何使不同函数中的变量是同一个变量

比如我在类A中声明了d这个变量,然后在B函数中调用了d,C函数中也调用了d,怎样保证这两个d是同一个变量

class A { int d = 0;}
如果B 和C都是类A的成员函数
class A
{
int d = 0;
void C(){ d++;}
void B()( d--;}
}
类A实例化a1和a2两个对象,a1.C(), a1.B()都是调用的类A的实例a1的数据成员d,与实例a2.d无关

如果类A不存在不同的实例对象里边有不同的d,可以把d声明成静态static,实现其全局唯一性.
这个时候,类A的所有的实例都共享同一个d,

class A
{
static int d = 0;
}
A::d = 5;
A a1, a2, a3;
a1.d , a2.d, a3.d的值是都5,
a1.d = 10; //同样,a2.d a3.d的值都自动变成了10,因为这个d都是同一个静态成员.
访问这个d有2种方法,
1通过类名称访问 A::d =5; int i = A::d;
2通过类的任何一个实例对象访问,比如A a1; a1.d = 5; int i = a1.d;
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-10
C++ 类中定义的成员变量,通过其名称的唯一性来决定其所代表的变量的唯一性。类的成员变量是可以被函数调用的,该类的成员函数调用这个变量,直接用其名称即可,类外函数调用该变量,需要通过类名称+"."+变量名来调用。类的成员变量依据其定义的访问类型,决定其能否被类外部的其他函数直接使用。
访问类型:private:只能为该类的成员函数和友元使用;
protected:可以为该类的成员函数和友元使用,也可由该类的派生类使用;
public:可以为任意函数使用。
C++ 的类作为基本封装单元,通常情况下,类的成员变量通常被定义成 "private",而类函数定义成"public",如果类中的变量需要由外部调用,一般是通过该类的成员函数来调用其中的成员变量。通过这样的方法,实现类的内部与外部的隔离,保证类内部数据结构的完整性。
第2个回答  2020-05-15
有两种方法:
1、使用全局变量;
2、在类a中定义变量d为公有类型变量,在类b和类c中定义一个类a的对象,然后就可以通过定义好的类a的对象访问类a中定义的变量d了;
第3个回答  2011-06-28
能把问题写的清楚点吗?B和C是不是类A的函数,如果是的话,就不需要什么特别的技术。B,C自然而然就可以调用d。如果B和C不是A的函数,方法就比较多,当然也比较复杂。还牵涉到B,C所在对象和类A的关系问题。本回答被提问者采纳
第4个回答  2011-06-28
全局变量,或者用指针
相似回答