偶刚开始学c++面向对象部分
编了一个工程,老是不能通过编译,帮帮忙
//----------------------------------//
// Employee.prj //
//----------------------------------//
//************************//
//* name.h *//
//************************//
class Name
{
public:
Name(char*);
void Show();
void Change(char*);
protected:
char firstname[10];
char familyname[10];
}
//************************//
//* name.cpp *//
//************************//
#include<string.h>
#include<iostream.h>
#include"name.h"
Name::Name(char*)
{
int length=strlen(pname);
int count;
for(count=0;*(pname+count)!= ;count++)
{
firstname[count]=pname[count];
}
firstname[count++]=\0;
for(int i=0;count<length;count++,i++)
{
familyname[i]=pname[count];
}
familyname[i]=\0;
}
void Name::Show()
{
cout<<firstname<< <<familyname;
}
void Name::Change(char*pname)
{
int length=strlen(pname);
int count;
for(count=0;*(pname+count)!= ;count++)
{
firstname[count]=pname[count];
}
firstname[count++]=\0;
for(int i=0;count<length;count++,i++)
{
familyname[i]=pname[count];
}
familyname[i]=\0;
}
//**********************//
//* Employee.h *//
//************************//
#include"name.h"
class Employee //编译器说这里有错,奇怪,书上不都是这样写的么?哪位高手帮帮看
{
public:
Employee(char*,char*,char*,char*,char*);
void ChangeName(char*);
void Display();
protected:
Name someone;
char Addr[20];
char City[10];
char Province[15];
char Postnum[10];
}
//***********************//
//* Employee.cpp *//
//************************//
#include<string.h>
#include<iostream.h>
#include"Employee.h"
Employee::Employee(chsr*pName,char*pAdd,char*pCity,char*pPro,char*pPost):someone(pName)
{
strcpy(Addr,pAdd);
strcpy(City,pCity);
strcpy(Province,pPro);
strcpy(Postnum,pPost);
}
void Employee::ChangeName(char*changeto)
{
someone.Change(changeto);
}
void Employee::Display()
{
cout<< <<Add<< <<City<< <<Province<< <<Postnum<<endl;
}
//***********************//
//* main.cpp *//
//**********************//
#include"Employee.h"
void main()
{
Employee em("Mark Brooks","5 West St.","Revere","CA","12290";
em.Display();
em.ChangeName("Richard Voss");
em.Display();
}
To 楼主:
你的两个类定义的后面都未加分号。
class Name
{ 。
。
。
}; //这个分号丢了
class Employee
{ .
.
.
}; //这里也丢了个分号
还有Name类的构造函数定义中Name::Name(char*),未指参数名
这些就是我能指出的几点问题了,也不知对不对~~~~~
丢了很多东西,你为什么不自己改改?
//************************//
//* name.h *//
//************************//
class Name
{
public:
Name(char*);
void Show();
void Change(char*);
protected:
char firstname[10];
char familyname[10];
};
//************************//
//* name.cpp *//
//************************//
Name::Name(char*pname)
{
int length=strlen(pname);
int count;
for(count=0;*(pname+count)!= ;count++)
{
firstname[count]=pname[count];
}
firstname[count++]=\0;
for(int i=0;count<length;count++,i++)
{
familyname[i]=pname[count];
}
familyname[i]=\0;
}
void Name::Show()
{
cout<<firstname<< <<familyname;
}
void Name::Change(char*pname)
{
int length=strlen(pname);
int count;
for(count=0;*(pname+count)!= ;count++)
{
firstname[count]=pname[count];
}
firstname[count++]=\0;
for(int i=0;count<length;count++,i++)
{
familyname[i]=pname[count];
}
familyname[i]=\0;
}
//**********************//
//* Employee.h *//
//************************//
class Employee //±àÒëÆ÷˵ÕâÀïÓдí,Ææ¹Ö,ÊéÉϲ»¶¼ÊÇÕâÑùдµÄô?ÄÄλ¸ßÊÖ°ï°ï¿´
{
public:
Employee(char*,char*,char*,char*,char*);
void ChangeName(char*);
void Display();
protected:
Name someone;
char Addr[20];
char City[10];
char Province[15];
char Postnum[10];
};
//***********************//
//* Employee.cpp *//
//************************//
Employee::Employee(char*pName,char*pAdd,char*pCity,char*pPro,char*pPost):someone(pName)
{
strcpy(Addr,pAdd);
strcpy(City,pCity);
strcpy(Province,pPro);
strcpy(Postnum,pPost);
}
void Employee::ChangeName(char*changeto)
{
someone.Change(changeto);
}
void Employee::Display()
{
cout<< <<Addr<< <<City<< <<Province<< <<Postnum<<endl;
}
//***********************//
//* main.cpp *//
//**********************//
void main()
{
Employee em("Mark Brooks","5 West St.","Revere","CA","12290");
em.Display();
em.ChangeName("Richard Voss");
em.Display();
}