(一)引入namespace原因:
假如有很多跟人共同完成一项工程,工程中难免会有函数定义一样的名称,不可能一个一个的询问这个函数 你定义过了没有,所以引入namespace
#include <stdio.h>
#include "person.h"
#include "dog.h"
/*global namespace*/
/*把A::person放入global namespace,以后可以使用person来表示A::person*/
using namespace A;
using namespace C;
int main(int argc,char ** argv)
{
/*local namespace*/
Person per;
Dog dog;
per.setName("zhangsan");
per.setAge(10);
per.printInfo();
dog.setName("lisi");
dog.setAge(20);
dog.printInfo();
A::printVersion();
C::printVersion();
return 0;
}
main.cpp
#include <stdio.h>
namespace A{
class Person{
private:
char *name;
int age;
char *work;
public:
void setName(char *name);
int setAge(int Age);
void printInfo(void);
};
void printVersion(void);
}
person.h
#include <iostream>
#include "person.h"
using namespace std;
namespace A{
void Person::setName(char *name)
{
this->name = name;
}
int Person::setAge(int Age)
{
if(Age < 0 || Age > 150)
{
this->age = 0;
return -1;
}
this->age = Age;
return 0;
}
void Person::printInfo(void)
{
cout<<"nane = "<<name<<"age = "<<age<<"work = "<<work<<endl;
//intf("name = %s, age = %d, work = %s\n",name,age,work);
}
void printVersion(void)
{
cout<<"Person V1, by luxiaoguo"<<endl;
//intf("Person V1, by luxiaoguo\n");
}
}
person.cpp
namespace C{
class Dog{
private:
char *name;
int age;
char *work;
public:
void setName(char *name);
int setAge(int age);
void printInfo(void);
};
void printVersion(void);
}
dog.h
#include <stdio.h>
#include "dog.h"
namespace C{
void Dog::setName(char *name)
{
this->name = name;
}
int Dog::setAge(int Age)
{
if(Age < 0 || Age > 150)
{
this->age = 0;
return -1;
}
this->age = Age;
return 0;
}
void Dog::printInfo(void)
{
printf("name = %s, age = %d, work = %s\n",name,age,work);
}
void printVersion(void)
{
printf("Dog V1, by luxiaoguo\n");
}
}
dog.cpp