【问题标题】:C++ Accessing variables in a function in one class from a different classC ++从不同类访问一个类中的函数中的变量
【发布时间】:2016-11-12 17:44:38
【问题描述】:

我正在尝试编写具有多个类的程序,其中一个类从文本文件中读取变量,而其他类使用这些变量进行进一步处理。 我面临的问题是我无法将变量从一个类传递到另一个类,我确实尝试过“朋友”类,也尝试使用构造函数但失败了 获得所需的输出。 我能做的最好的就是 假设我有类 1 和类 2,并且我在类 1 中声明和初始化了一个变量“A=10”,在构造函数的帮助下,我在类 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 = 10, B = 20, C = 20, D = 40 但我得到的是 A = 10, B=(252e30) + 10

【问题讨论】:

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


    【解决方案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/

    【讨论】:

    • 嗨 Sesh Sadasivam,感谢您的帮助。我的核心程序在类 1 中读取/声明了大约 30 个变量,我应该按照相同的方法一一传递所有 30 个变量吗?我来自机械背景,使用 C++ 做一些计算工作。
    猜你喜欢
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2022-01-25
    • 2016-04-11
    相关资源
    最近更新 更多