C ++从不同的类访问一个类中的函数中的变量

时间:2016-11-12 17:44:39

标签: class oop c++11 constructor member-functions

我尝试使用多个类对程序进行编码,例如,其中一个类从文本文件中读取变量,其他类使用这些变量进行进一步处理。 我面临的问题是,我在将变量从一个班级传递到另一个班级时遇到了麻烦,我确实尝试了#34;朋友"类,也尝试使用构造函数但失败了 获得所需的输出。 我能做的最好的是 假设我有1级和2级,我有一个变量" A = 10"在类1中声明和初始化,在构造函数的帮助下,我在类2中继承它; 当我在第1类中打印它时,它给出了正确的输出为10,但是当我在第2类中打印时,它输出为293e30(地址位置) 请指导我如何做到这一点。

Class1
{
public:
    membfunc()
    {
        int A;
        A = 10;
    }
}

Class2
{
public:
    membfunc2()
    {
        int B;
        B = A + 10;
    }
    membfunc3()
    {
        int C, D;
        C = A + 10;
        D = B + C;
    }
}

如果我打印变量,我希望得到 A = 10B = 20C = 20D = 40 但我得到的是 A = 10B=(252e30) + 10

1 个答案:

答案 0 :(得分:1)

我认为您的问题是您在成员函数中定义局部变量,而不是创建类对象的成员变量。

以下是一些基于您的示例的代码,用于演示成员变量的工作原理:

class Class1
{
public:
    int A;

    void membfunc()
    {
        A=10;
    }

};

class Class2
{
public:
     int B;
     int C;
     int D;

     void membfunc2(Class1& class1Object)
     {
        B = class1Object.A + 10;
     }
     void membfunc3(Class1& class1Object)
     {
        C = class1Object.A + 10;
        D = B + C;
     }
};

(此处的完整代码示例:http://ideone.com/cwZ6DM。)

您可以在此处了解有关成员变量(属性和字段)的更多信息:http://www.cplusplus.com/doc/tutorial/classes/