投稿 资料上传 提问 搜索
您现在的位置是: 首页 > 问答 > 正文

怎样在类的一个对象中调用另一个对象?这样报错的原因是什么?

/*4. 建立一个复数类 Complex,要求
(1) 含两个私有数据成员:real, imaginary,float类型
(2)公有成员函数包括如下功能:
设置复数的两个私有成员
输出这个复数
与另一复数的加法函数 原型为 add (Complex c);
判断与另一复数是否相等isEqual(Complex c);
在main函数中,输入两个复数,判断两个复数是否相等
(实部和虚部要分别相等),
然后两者相加之和赋值给一个新的复数,并输出*/

#include <iostream>
using namespace std; 

class Complex{
    public:
        void getRI(float R,float I);     //设置复数的两个私有成员
        void output();                   //输出这个复数
        void add(Complex c);             //与另一复数的加法函数 原型为 add (Complex c);
        void isEqual(Complex c);         //判断与另一复数是否相等
    private:
        float real,imaginary;
};
void Complex::getRI(float R,float I){
    real=R;
    imaginary=I;
}
void Complex::output(){
    cout<<"此复数为:"<<real<<"+"<<imaginary<<"i"<<endl; 
}
void Complex::add(Comeplex c){
    cout<<"两复数相加为:";
    cout<<real+c.real<<"+"<<imaginary+c.imaginary<<"i"<<endl;
}
void Complex::isEqual(Comeplex c){
    if(real==c.real)
    {
        if(imaginary==c.imaginary)
            cout<<"They are equal."<<endl;
    }
    else
        cout<<"They are not equal."<<endl;
}
int main(int argc, char** argv) {
    Complex myComeplex,c;             //定义两个对象
    float R1,I1,R2,I2;
    cin>>R1>>I1;
    cin>>R2>>I2;
    myComplex.getRI(R1,I1);
    c.getRI(R2,I2);
    cout<<"复数myComplex为:";
    myComplex.output();
    cout<<"复数c为:";
    c.output();
    myComplex.add(Complex c);
    myComplex.isEqual(Complex c);
    return 0;
}
问题回复
  1. 我叫你baba
    我叫你babaIT技术之家

    如果另一个类中的那个方法是私有的话,就不能直接调用到,如果是其他类型的话看情况,如果是静态的(static)话,直接用类名可以调用到,如果是非静态的,就需要利用另一个类的实例(也就是用那个类生成的对象)来调用。 如 class A{ public static void a(){} public void b(){} } public class B{ public static void main(String[] args){ A.a();//静态 new A().b();//非静态 } }

    回复