如何保持“类的参数”CONSTANT的值,以便可以从其他类访问它?

时间:2014-02-25 17:41:06

标签: c++

请求:我已经解决了我的问题所以请求大家请停止投票。我在我的问题下面写了我的答案。

我有三个班级,即

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;
}

2 个答案:

答案 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;
}