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;
}








![[Python从零到壹] 六十六.图像识别及经典案例篇之基于机器学习的图像分类](https://img-blog.csdnimg.cn/139d1b6497224e069e1449a76536d36b.png#pic_center)









