新手请问怎么解决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()
#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()