64,685
社区成员
发帖
与我相关
我的任务
分享
//header.h
#ifndef PERSON_H_
#define PERSON_H_
#include <string>
#include <iostream>
using namespace std;
class Person
{
private:
static const int LIMIT;
string lname;
char* fname; //这么用!
public:
Person()
{
fname = new char[LIMIT];
lname=" ";
fname[0]='\0';
}
~Person()
{
delete [] fname;
}
Person(const string & ln,const char * fn="Heyyou");
void Show() const;
void FormalShow() const;
};
#endif
//main.cpp
#include <cstring>
#include "String.h"
using namespace std;
const int Person::LIMIT=25;
Person::Person(const string & ln,const char * fn)
{
fname = new char[LIMIT];
lname=ln;
strncpy(fname,fn,24);
fname[24]='\0';
}
void Person::Show() const
{
cout <<"Fullname: " <<fname <<" " <<lname <<endl <<endl;
}
void Person::FormalShow() const
{
cout <<"Formal show name: " <<lname <<" " <<fname <<endl <<endl;
}
//header.h
#ifndef PERSON_H_
#define PERSON_H_
#include <string>
#include <iostream>
using namespace std;
class Person
{
private:
static const int LIMIT;
string lname;
char* fname; //这么用!
public:
Person()
{
fname = new char[LIMIT];
lname=" ";
fname[0]='\0';
}
Person(const string & ln,const char * fn="Heyyou");
void Show() const;
void FormalShow() const;
};
#endif
//main.cpp
#include <cstring>
#include "String.h"
using namespace std;
const int Person::LIMIT=25;
Person::Person(const string & ln,const char * fn)
{
fname = new char[LIMIT];
lname=ln;
strncpy(fname,fn,24);
fname[24]='\0';
}
void Person::Show() const
{
cout <<"Fullname: " <<fname <<" " <<lname <<endl <<endl;
}
void Person::FormalShow() const
{
cout <<"Formal show name: " <<lname <<" " <<fname <<endl <<endl;
}
//header.h
#ifndef PERSON_H_
#define PERSON_H_
#include <string>
#include <iostream>
using namespace std;
class Person
{
private:
static const int LIMIT;
string lname;
char fname[LIMIT]; //最好不要这么用!
public:
Person()
{
lname=" ";
fname[0]='\0';
}
Person(const string & ln,const char * fn="Heyyou");
void Show() const;
void FormalShow() const;
};
#endif
//main.cpp
#include <cstring>
#include "String.h"
using namespace std;
const int Person::LIMIT=25;
Person::Person(const string & ln,const char * fn)
{
lname=ln;
strncpy(fname,fn,24);
fname[24]='\0';
}
void Person::Show() const
{
cout <<"Fullname: " <<fname <<" " <<lname <<endl <<endl;
}
void Person::FormalShow() const
{
cout <<"Formal show name: " <<lname <<" " <<fname <<endl <<endl;
}
//改成这样
//person.h
#ifndef PERSON_H_
#define PERSON_H_
#include <string>
using namespace std;
class Person
{
private:
static const int LIMIT;
string lname;
char *fname;
public:
Person()
{
fname=new char[LIMIT];
lname=" ";
fname[0]='\0';
}
Person(const string & ln,const char * fn="Heyyou");
void Show() const;
void FormalShow() const;
};
const int Person::LIMIT=25;
#endif
//person.cpp
#include <iostream>
#include <string>
#include <cstring>
#include"person.h"
using namespace std;
Person::Person(const string & ln,const char * fn)
{
lname=ln;
strncpy(fname,fn,24);
fname[24]='\0';
}
void Person::Show() const
{
cout <<"Fullname: " <<fname <<" " <<lname <<endl <<endl;
}
void Person::FormalShow() const
{
cout <<"Formal show name: " <<lname <<" " <<fname <<endl <<endl;
}
void main()
{
Person p;
}
private:
static const int LIMIT=25;
string lname;
char fname[LIMIT];
static const int LIMIT=25;也是可以的,最新的VS2008支持,但是VC6.0不支持。