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++。这样就不那么令人沮丧了。