新手请问怎么解决unexpected 'class'

新手请教如何解决unexpected 'class'
#ifndef ADD_H
#define ADD_H
#include <iostream.h>
#include <string.h>
class Add
{
 protected:
char address[100];
int age;
 public:
Add(char*addr,int ag)
{
strcpy(address,addr);
age=ag;
}
Add(Add A)
{
strcpy(address,A.address);
age=A.age;
}
void setadd(char* addr)
{
address=addr;
}
void setage(int ag)
{
age=ag;
}
void show()
{
cout<<"address is "<<address<<"and age is "<<age<<endl;
}
~Add()
{
delete[]address;
}
};

#endif


#include <iostream.h>
#include <string.h>
#include "add.h"
void main()
{
Add pers("Shanghai",10001);
Add::show();
}
运行时出现
应用.cpp
e:\【电脑】c++示例\人员\add.h(6) : error C2236: unexpected 'class' 'Add'
e:\【电脑】c++示例\人员\add.h(6) : error C2143: syntax error : missing ';' before '{'
e:\【电脑】c++示例\人员\add.h(6) : error C2447: missing function header (old-style formal list?)
e:\【电脑】c++示例\人员\scores.h(7) : error C2504: 'Add' : base class undefined
执行 cl.exe 时出错.


------解决方案--------------------
#include <iostream.h> 
#include <string.h> 
//类名称尽量规范化
class CAdd 

protected: 
char address[100]; 
int age; 
public: 
CAdd(char*addr,int ag) 

strcpy(address,addr); 
age=ag; 

CAdd(CAdd &A) 

strcpy(address,A.address); 
age=A.age; 

void setadd(char* addr) 

//如此赋值是不行的
//address=addr; 

void setage(int ag) 

age=ag; 

void static show() 

//静态成员函数不能调用 address age
//cout <<"address is " <<address <<"and age is " <<age <<endl; 

~CAdd() 

delete[]address; 

}; 




void main() 

CAdd pers("Shanghai",10001); 
CAdd::show(); 



------解决方案--------------------
类名和函数名重复,要区别开来.
------解决方案--------------------
Add(Add A)构造函数不能用自己的类做参数.你修改下看看.
------解决方案--------------------
#include <iostream> 
#include <string> 
using namespace std;
//类名称尽量规范化 
class CAdd 

protected: 
char address[100]; 
int age; 
public: 
CAdd(char*addr,int ag) 

strcpy(address,addr); 
age=ag; 

CAdd(CAdd &A) 

strcpy(address,A.address); 
age=A.age; 

void setadd(char* addr) 

//如此赋值是不行的 
//address=addr; 

void setage(int ag) 

age=ag; 

void static show(CAdd *ca) 

//静态成员函数不能调用 address age 
//CAdd *ca = this;
cout <<"address is " <<ca->address<<"and age is " <<ca->age <<endl; 

~CAdd() 

delete[]address; 

}; 


void main()