cc41a_demo命名空间c++

早过忘川 提交于 2020-01-22 19:29:48

//41CppPrimer_命名空间c++
//命名空间也叫名称空间
//命名空间的定义
//-每个命名空间是一个作用域
//-命名空间可以是不连续的-意思可以在头文件里面写MyApp的一部分内容,也可以在程序.cpp里面写一部分内容。两个地方的相同名字的命名空间,c++默认是一个,但你面的类与函数不要重名。调用时与两个部分写在一起是一样的功能。比如bs.h中有MyApp,cc41a_demo.cpp里面也有MyApp


//-接口和实现的分离
//-嵌套命名空间

//*命名空间成员的使用
//using std::vector;
//using primer=cplusplus_primer;
//using namespace std;

//没有在任何名称空间里面的类,就在全局命名空间里面

//设计自己的命名空间

//41CppPrimer_命名空间c++
//命名空间也叫名称空间
//命名空间的定义
//-每个命名空间是一个作用域
//-命名空间可以是不连续的-意思可以在头文件里面写MyApp的一部分内容,也可以在程序.cpp里面写一部分内容。两个地方的相同名字的命名空间,c++默认是一个,但你面的类与函数不要重名。调用时与两个部分写在一起是一样的功能。比如bs.h中有MyApp,cc41a_demo.cpp里面也有MyApp


//-接口和实现的分离
//-嵌套命名空间

//*命名空间成员的使用
//using std::vector;
//using primer=cplusplus_primer;
//using namespace std;

//没有在任何名称空间里面的类,就在全局命名空间里面

//设计自己的命名空间
#include <iostream>
#include "bs.h"
//using namespace std;//不建议使用这个,因为会导入std所有的内容,
using std::cout;//cpp里面-建议使用哪个就导入哪个。
using std::endl;

using namespace Bookstore;//名称空间
namespace bs = Bookstore;//可以使用别名

class Ant
{

};
namespace MyApp
{
	double pail;//可以是变量
	void processTrans()//函数
	{
		Bookstore::Sales_item s;
		bs::Sales_item s2; ////可以使用别名方式
	}
	class Dog//类
	{

	};
}


using namespace std;//std就c++定义好的名称空间

int main()
{
	using namespace MyApp;
	std::cout << "hello111" << std::endl;
	//MyApp::processTrans();
	processTrans();
	MyApp::Dog();
	MyApp::Dog1();
	::Ant();//全局名称空间——c++默认的
	::tt1();//全局名称空间在bs.h中

	//Bookstore::Sales_item item;
	return 0;
}

bs.h

#pragma once
#ifndef _BS_H
#define _BS_H
#include <string>

//using namespace std;//头文件里不要这样写
//using std:: cout;//头文件里也不要这样写

namespace Bookstore
{

	class Sales_item
	{
	public:
		//建议写std::string的方式
		Sales_item(const std::string &book = "") :isbn(book), units_sold(0), revenue(0.0) {}
		double avg_price() const;

	private:
		std::string isbn;
		unsigned units_sold;//销售数量
		double revenue;
	};
}
namespace MyApp
{
	class Dog1
	{

	};
}
class tt1
{

};
#endif // !_BS_H

bs.cpp

#include "bs.h"

namespace Bookstore
{

	double Sales_item::avg_price() const
	{
		if (units_sold)
			return revenue / units_sold;
		else
			return 0;
	}
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!