您现在的位置是:首页 >技术教程 >c++学习——概述、命名空间注意事项网站首页技术教程

c++学习——概述、命名空间注意事项

奶味少女酱~ 2024-06-17 11:19:27
简介c++学习——概述、命名空间注意事项

C++语言在c语言的基础上添加了面向对象编程和泛型编程的支持。

第一个helloworld

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;//标准命名空间

int main()
{
	//cout是标准的输出流对象,打印字符串
	//endl是刷新缓冲区,并且换行
	cout << "hello world!"<< endl;
	system("pause");
	return EXIT_SUCCESS;
}

**面向对象的三大特征:

封装 继承 多态

**为什么有命名空间?

是为了解决多人合作是取标识符是重命名的问题呢

什么是命名空间

namespace A{//A是空间的名字
	int a;
	void func()
	{

	}
}

命名空间的注意:

1) 命名空间只能写在全局
在这里插入图片描述
2) 命名空间可以嵌套命名空间
在这里插入图片描述
3) 命名空间是开放,随时可以加入新成员,但是新成员只能在加入后使用
4) 匿名的命名空间
5)命名空间可以取别名
6) 分文件编写代码时,如果. h中有两个命名空间,但是里面的成员函数或成员变量同名时,在.cpp中实现函数时,需要加上命名空间
在这里插入图片描述
test.h

#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

namespace myMaker1
{
	void func();
}

namespace myMaker2
{
	void func();
}

test.cpp

#include "test.h"


void myMaker1::func()
{
	cout << "func" << endl;
}

02 命名空间.cpp

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include "test.h"
using namespace std;

namespace A{//A是空间的名字
	int a;
	void func()
	{

	}
}

//命名空间可以嵌套命名空间
namespace Maker
{
	int a =2222;
	namespace B
	{
		int b = 40;
	}
}

//新成员只能再加入后使用
//void test()
//{	
//	cout << Maker::c << endl;
//}

namespace Maker
{
	int c = 30;
}

int mya = 10;

//匿名的命名空间  类似于static int d=50
//相当于定义了一个静态的全局变量
//在当前文件中使用    不能在其他文件中使用
namespace
{
	int d = 50;
}

//命名空间取别名
void test01()
{
	//       新名字       旧名字       
	namespace nameMaker = Maker;
	cout << nameMaker::a << endl;
}

int main()
{
	//namespace B
	//{

	//}
	int mya = 20;
	//就近原则  这里打印的是20
	cout << "mya=" << mya << endl;
	//如果你想全区变量的10 就要用作用域
	cout << "::mya=" << ::mya << endl;
	//访问命名空间的数
	cout << Maker::c << endl;
	//访问嵌套命名空间的数
	cout << Maker::B::b << endl;
	
	//test();err
	
	cout << d << endl;
	test01();

	myMaker1::func();

	system("pause");
	return EXIT_SUCCESS;
}

在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。