请大家看看这段程序的错误

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:43:45
class CSample
{ int a=2.5 ;
public:
int b ;
void Print( )
{cout<<a+b<<'\n' ; }
void Set (int , int);
}
void Set(int x , int y)
{
a=x ;
y=b ;
}
void main( )
{
CSample Sam1 , Sam2 ;
Sam1.Set(2,3);
Sam2.Set(5,6);
Sam1.Print( ) ;
Sam2.Print( ) ;
Cout<<sam1.a+sam2.a<<endl;
Cout<<sam1.b+sam2.b<<endl;
}
回答越详细,就加谁分
最好说明为什么错了

#include "iostream.h"//你用到了cout所以最好加上这个头。
class CSample
{
int a ; //类成员的初始化要放在构造函数里面不是定义过程中。
//你可写一个没有参数的构造函数来实现这个赋值。当省略成员属性时,默认为私有成员。
public:
int b ;
CSample();
void Print( ) {cout<<a+b<<'\n';}
void Set (int , int);
inline int geta(){return a;}//我推荐你再写一个geta,这样就可以安全的访问a了。
};//类的结尾}之后一定要加分号,否则报一堆莫名其妙的错
void CSample::Set(int x , int y) //类的成员函数实现一定要声明你的这个实现是那个类的,试想如果两个类里都有Set这个成员那你的这个实现是给谁写的呢?
{
a=x;
y=b;
}
CSample::CSample()//一个实现赋值的构造函数

{
a=2.5;
b=0;
}
void main( )
{
CSample Sam1 , Sam2 ;
Sam1.Set(2,3);
Sam2.Set(5,6);
Sam1.Print() ;
Sam2.Print() ;
cout<<Sam1.geta()+Sam2.geta()<<endl; //cout拼错了,注意区分大小写,Sam1,Sam2拼错了,注意区分大小写
cout<<Sam1.b+Sam2.b<<endl; //还有a是一个私有成员,不可以在类以外访问,我推荐你再写一个geta,这样就可以安全的访问a了。

}

这样试试
class CSample