Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.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++ 获取C2628错误_C++_Visual C++ - Fatal编程技术网

C++ 获取C2628错误

C++ 获取C2628错误,c++,visual-c++,C++,Visual C++,考虑以下代码: #include<iostream> using namespace std; class sample { int a; int b; public: void setValue() { a=25; b=40; } friend float mean(sample s) { return float(s.a+s.b)/2.0; } } int main()

考虑以下代码:

#include<iostream>
using namespace std;
class sample
{
    int a;
    int b;
public:
    void setValue()
    {
        a=25;
        b=40;
    }
    friend float mean(sample s)
    {
        return float(s.a+s.b)/2.0;
    }
}
int main()
{
    sample x;

    x.setValue();
    cout<< "mean value:"<< mean(x)<<endl;

    cin.ignore();
    getchar();
    return (0);
}

我做错了什么?

您忘记了类定义右括号后的分号:

class sample
{
   //code omitted for brevity

}; <------------------- you forgot this

这避免了不必要的参数副本。

您忘记了类定义右括号后的分号:

class sample
{
   //code omitted for brevity

}; <------------------- you forgot this

这避免了不必要的参数副本。

您需要使用
结束类声明

class sample
{
    // code
};

您需要以
结束类声明

class sample
{
    // code
};

我引用:“你忘了一个“;”?“…第一步:得到一个。第二步:阅读。犯愚蠢的错误没有错,但是你需要学习语言,并且能够检查你自己代码中的简单错误。我引用:“你忘记了一个“;”?“…步骤1:获取一个。第二步:阅读。犯愚蠢的错误没什么错,但是你需要学习语言,并且能够检查你自己的代码中的简单错误。它起作用了:)………@jeet.mg:为了将来的参考,下次出错时请尝试阅读错误消息。有时,它甚至会告诉您可能出了什么问题(例如,“错误C2628:“sample”后跟“int”是非法的(您是否忘记了“;”?”)。在一些编译器错误后不要轻易放弃。我读到。。。但是,我只检查了报表。frmjava背景。所以,我没想到会有这样的结果;之后class@jeet.mg:所以你基本上忽略了编译器告诉你的。你惊讶地发现它不起作用?你首先要做的是(1)听编译器,而不是你对语言如何工作的先入之见,(2)意识到C++和java无关。获取并学习适当的C++。这样就不那么令人沮丧了。它起作用了:)…………@jeet.mg:为了将来的参考,下次出错时请尝试阅读错误消息。有时,它甚至会告诉您可能出了什么问题(例如,“错误C2628:“sample”后跟“int”是非法的(您是否忘记了“;”?”)。在一些编译器错误后不要轻易放弃。我读到。。。但是,我只检查了报表。frmjava背景。所以,我没想到会有这样的结果;之后class@jeet.mg:所以你基本上忽略了编译器告诉你的。你惊讶地发现它不起作用?你首先要做的是(1)听编译器,而不是你对语言如何工作的先入之见,(2)意识到C++和java无关。获取并学习适当的C++。这样就不那么令人沮丧了。