C++命名空间的使用

命名空间:People

类:Student

方法:printDemo();

Student.h

注意:当我们命名空间People里定义了一个方法时,在写该方法的实现时,一定要在方法名称之前加上命名空间。比如说:

void<em><strong><span style="color:#FF0000;"> People::</span></strong></em>printDemo()
一定有人想问为什么?否则编译时,会爆出找不到printDemo()的实现。假如说:在头文件里还定义了一个printDemo()当然了,这个方法不在命名空间People里,那么在实现该方法时,如果不写成这样:
void<em><strong><span style="color:#FF0000;"> People::</span></strong></em>printDemo(){}
谁知道,您是要实现命名空间里的printDemo(),还是要实现命名空间外面的printDemo()呢?

#include<string>
using namespace std;
 namespace People
{
	class Student
	{
	private:
		int id;
		int age;
	public:
		Student(int id, int age);
		~Student();
		void  PrintInfo();
	};
	void printDemo();
}

Student.cpp

#pragma once
#include"Student.h"
#include<iostream>
using namespace People;
Student:: Student(int id, int age)
{
	this->id = id;
	this->age = age;
}
Student::~Student()
{}
void  Student:: PrintInfo()
{
	cout << "id" << id << "age" << age;
}
void<em><strong><span style="color:#FF0000;"> People::</span></strong></em>printDemo()
{
	cout << "DDDDDDDDD" << endl;
}

main.cpp

#pragma once
#include<string>
#include"Student.h"
using namespace People;
using namespace std;
int main()
{
	Student stu(1000,10);
	stu.PrintInfo();
	system("pause");
	printDemo();
	return 0;
}


【补充】

namespace Animal,class Bird,Function Fly;

【文件:functionDemo.h】

#include<iostream>
#include<algorithm>
using namespace std;
 namespace Animal
{
	class Bird
	{
	public :
		void Fly();
	};

	void Fly();
}
void Fly();

【文件namespaceDemo.cpp】

#include"namespaceDemo.h"
using namespace Animal;
void Bird::Fly()
{
	cout << "鸟在飞!!!!!"<<endl;
}
void Fly()
{
	cout << "不是动物的飞机在飞!!"<<endl;
}
void Animal::Fly()
{
	cout << "动物在飞!!!!"<<endl;
}
int main()
{
	Bird bir;
	bir.Fly();
	Animal::Fly();
	::Fly();
	system("pause");
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章