我有关于类和对象的问题。首先,这是我的计划。
#include <iostream>
#include <conio.h>
using namespace std;
class Class1{
private:
int x;
public:
Class1();
void Display();
};
class Class2{
private:
double z;
public:
Class2();
void Display();
Class2 Add(Class1);
};
Class1::Class1(){ x = 1; }
Class2::Class2(){ z = 5; }
void Class1::Display(){ cout<<x<<"\n"; }
void Class2::Display(){ cout<<z<<"\n"; }
Class2 Class2::Add(Class1 t){
Class2 y;
y.z = t.x + z;
return y;
}
int main(){
Class1 ob1; // ob1 = 1 //
Class2 ob2,ob_x; // ob2 = 5 | ob_x = 5 //
ob_x = ob2.Add(ob1); // Add ob + ob1 and Assigned them to ob_x //
ob_x.Display();
cout<<endl;
getche();
return 0;
}
我想您知道错误在哪里,如何访问其他类成员? 我的意思是我们没有在大学里学到这一切,我们都知道,直到知道这么简单。我可以使用另一个可以访问这两个类的全局函数吗?如果可以提供一些小技巧,请谢谢
答案 0 :(得分:2)
只需将getter方法int get_x()
添加到Class1
#include <iostream>
#include <conio.h>
using namespace std;
class Class1{
private:
int x;
public:
Class1();
void Display();
int get_x();
};
int Class1::get_x()
{
return x;
}
class Class2{
private:
double z;
public:
Class2();
void Display();
Class2 Add(Class1);
};
Class1::Class1(){ x = 1; }
Class2::Class2(){ z = 5; }
void Class1::Display(){ cout<<x<<"\n"; }
void Class2::Display(){ cout<<z<<"\n"; }
Class2 Class2::Add(Class1 t){
Class2 y;
y.z = t.get_x() + z;
return y;
}
int main(){
Class1 ob1; // ob1 = 1 //
Class2 ob2,ob_x; // ob2 = 5 | ob_x = 5 //
ob_x = ob2.Add(ob1); // Add ob + ob1 and Assigned them to ob_x //
ob_x.Display();
cout<<endl;
getche();
return 0;
}
答案 1 :(得分:-4)
您在课程中设置了x
private
,这意味着您无法从其他课程中访问它。这就是您的程序出错的原因。设为public
,然后您的程序就会开始工作。