Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何解决类成员函数中的“返回值”错误?_C++_Class_Member Functions - Fatal编程技术网

C++ 如何解决类成员函数中的“返回值”错误?

C++ 如何解决类成员函数中的“返回值”错误?,c++,class,member-functions,C++,Class,Member Functions,这里 您已经承诺返回一个复杂函数,在任何成员函数定义中,您都不会返回它。这是,你很幸运,VS给了你一个编译器错误。关于编译器错误,请尝试启用编译器警告以查看并挽救代码中存在此类未定义行为的情况 解决方案是向您的成员函数添加一个return语句,该语句类似于示例中的SumCom complex SubCom(complex c1, complex c2); ^^^^^^^ complex SumCom(complex c1, complex c2); ^^^^^^^ complex MulCom(

这里

您已经承诺返回一个复杂函数,在任何成员函数定义中,您都不会返回它。这是,你很幸运,VS给了你一个编译器错误。关于编译器错误,请尝试启用编译器警告以查看并挽救代码中存在此类未定义行为的情况

解决方案是向您的成员函数添加一个return语句,该语句类似于示例中的SumCom

complex SubCom(complex c1, complex c2);
^^^^^^^
complex SumCom(complex c1, complex c2);
^^^^^^^
complex MulCom(complex c1, complex c2);
^^^^^^^
然而,我想建议超负荷工作,因为三个成员的职能似乎是实现这一目标的完美人选

以下是一份:

输出:

你必须写作 返回对象;
当您想要返回一些值时。请记住,您返回的值不会显示在screenmaybe控制台上?除非调用某些函数并将返回值传递给它。

complex;这是我在你的代码中看到的唯一构造函数,所有其他的都是返回复数的成员函数,你没有返回任何东西。但是我希望它是空的..n不要返回任何东西如果你想要一个不返回任何东西的成员函数,你应该使返回类型为空。例如,SumCom是用返回类型complex声明和定义的。在函数名之前是返回类型的类型,您知道吗?编辑:程序在DEV C++中运行良好,但在VisualStudio中显示error@jejo谢谢,但不谢谢,因为我是一个Engg学生,谢谢,我很困惑,因为DEV C++编译器没有显示任何错误。另外,我也尝试过用函数编写void,但是错误增加了。所以我对如何返回它感到困惑。如果提供的话,丢失的返回通常是一个警告。@Sawakokurunma为了获得更好的编码体验,总是启用额外的编译器警告。我不确定DEV C++,但是编译时,它应该引导你到代码中的问题,向右的方向前进,但是当函数承诺返回一个值,但是允许返回而不返回一个值时,结果是未定义的。任何事情都有可能发生,有些结果更可能带来坏结果,而不是打开地狱之门。
 1. complex::SumCom must return a value 
 2. complex::MulCom must return a value
 3. complex::SubCom must return a value.
complex SubCom(complex c1, complex c2);
^^^^^^^
complex SumCom(complex c1, complex c2);
^^^^^^^
complex MulCom(complex c1, complex c2);
^^^^^^^
complex complex::SumCom(complex c1, complex c2) 
{
     // implementation
     return /*resulting complex object*/;
}
#include<iostream>

class complex
{
private:
    double re, img;
public:
    complex() = default;

    friend complex operator+(complex c1, const complex& c2) {
        c1.re += c2.re;
        c1.img += c2.img;
        return c1;
    }
    friend complex operator-(complex c1, const complex& c2) {
        c1.re -= c2.re;
        c1.img -= c2.img;
        return c1;
    }
    friend complex operator*(complex c1, const complex& c2) {
        c1.re *= c2.re;
        c1.img *= c2.img;
        return c1;
    }
    void input();
    void show();
};
void complex::input()
{
        std::cout << "Real:" ; std::cin >> re;
        std::cout << "Imaginary:" ; std::cin >> img;
}
void complex::show() {
    std::cout << re << "," << img << "i\n";

}

int main()
{
    complex c1;
    c1.input();
    c1.show();
    complex c2;
    c2.input();
    c2.show();
    complex c = c1 + c2; // now you can
    c.show();
    c = c1 * c2; // now you can
    c.show();
    c = c1 - c2; // now you can
    c.show();
    return 0;
}
Real:Imaginary:1,1i
Real:Imaginary:2,2i
3,3i
2,2i
-1,-1i