我尝试使用多个类对程序进行编码,例如,其中一个类从文本文件中读取变量,其他类使用这些变量进行进一步处理。 我面临的问题是,我在将变量从一个班级传递到另一个班级时遇到了麻烦,我确实尝试了#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 = 10
,B = 20
,C = 20
,D = 40
但我得到的是
A = 10
,B=(252e30) + 10
答案 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/。