请求:我已经解决了我的问题所以请求大家请停止投票。我在我的问题下面写了我的答案。
我有三个班级,即
class-A
,
class-B
,
class-C
。
int value
class A
的参数
class B
中初始化它,即A.value = 0;
value
class C
问题:我如何访问相同的值?
解决方案:我已经解决了问题。这是我的解决方案
我的三个班级;
class A
{
int value;
}
class B
{
void setValue();
}
class C
{
void useValue;
}
现在,上面的类的方法
void B:setValue()
{
A object;
object.value = 10;
useValue(object);
}
void C:useValue(A object)
{
cout<<"Parameter: "<<object.value;
}
答案 0 :(得分:2)
解决方案1: 你可以做的是将你需要处理的对象作为参数传递给B和C类中的函数。
查看以下代码:
class A
{
public:
int parameter;
};
class B
{
public:
void setParameter(A &obj);
};
class C
{
public:
void accessParameter(A &obj);
};
//defining the functions
void B::setParameter(A &object)
{
object.parameter = 10;
}
void C::accessParameter(A &object)
{
std::cout<<"The value of parameter is: "<<object.parameter;
}
我希望这能解决你的问题。如果没有,请在评论中发帖。
注意:您需要在main函数中创建一个A对象,并将其传递给B类和C类的方法。
解决方案2: 您可以做的另一件事是建立一个继承链:
C继承继承A的B。
所以,
class A
{
public:
int parameter;
};
class B : public A
{
public:
void setParameter(){
parameter = 10;
}
};
class C : public B
{
public:
C(){
setParameter();
}
void accessParameter(){
std :: cout << parameter;
}
};
解决方案3
另一种解决方案是将parameter
作为静态字段。
代码:
#include<iostream>
class A
{
public:
static int parameter;
};
int A::parameter;
class B
{
public:
void setParameter();
};
class C
{
public:
void accessParameter();
};
//defining the functions
void B::setParameter()
{
A::parameter = 10;
}
void C::accessParameter()
{
std::cout<<"The value of parameter is: "<< A::parameter;
}
int main(){
B objB;
objB.setParameter();
C objC;
objC.accessParameter();
return 0;
}
答案 1 :(得分:0)
object
是本地变量。当程序存在setParameter()函数
void B::setParameter()
{
A object;
object.parameter = 10;
}