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