v6中编译,谁告诉错在哪里了?

来源:百度知道 编辑:UC知道 时间:2024/05/28 02:48:58
#include <iostream>
using namespace std;
class X1()
{
private:
int x;
public:
X1(int i)
{x=i}
int getx();
friend void sum(X1 &a,X2 &b); //申明友元函数
};
int X1::getx()
{return x;}
void sum(X1 &a,X1 &b)
{cout <<"用友元函数求和:"<<a.x+b.x<<endl;}
void sum1(X1 &a,X1 &b)
{cout <<"用普通函数求和:"<<a.getx()+b.getx()<<endl;}
void main()
{
X1 m(1);
X1 n(2);
sum(m,n);
sum1(m,n);
}

改为如下:
#include <iostream>
using namespace std;
class X1 //此处不用括号
{
private:
int x;
public:
X1(int i)
{x=i;} //分号漏了。。
int getx();
friend void sum(X1 &a,X1 &b); //申明友元函数 //x2没有定义该x1
};
int X1::getx()
{return x;}
void sum(X1 &a,X1 &b)
{cout <<"用友元函数求和:"<<a.x+b.x<<endl;}
void sum1(X1 &a,X1 &b)
{cout <<"用普通函数求和:"<<a.getx()+b.getx()<<endl;}
void main()
{
X1 m(1);
X1 n(2);
sum(m,n);
sum1(m,n);
}

Compiling...
f.cpp
e:\msdev98\bin\f.cpp(5) : error C2143: syntax error : missing ';' before 'private'
e:\msdev98\bin\f.cpp(7) : error C2143: syntax error : missing ';' before 'public'
e:\msdev98\bin\f.cpp(9) : error C2143: syntax error : missing ';' before '{'
e:\ms