qq_45735316
qq_45735316
采纳率80.7%
2020-03-20 11:08

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

已采纳

/*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;
}

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_36822217 BugM 1年前

    首先,你的类名为Complex,但是有的参数类型的类名为Comeplex(类名不一致,多了个e),包括main函数中的Complex myComplex;也多了个e
    请仔细检查所有类名是否一致!

    其次,myComplex.add(Complex c);
    函数调用的时候不用也不可以包含两类型名,应该写成myComplex.add(c);

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 1年前
    #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(Complex c){
        cout<<"两复数相加为:";
        cout<<real+c.real<<"+"<<imaginary+c.imaginary<<"i"<<endl;
    }
    void Complex::isEqual(Complex 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 myComplex,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(c);
        myComplex.isEqual(c);
        return 0;
    }
    
    点赞 评论 复制链接分享

相关推荐