0
点赞
收藏
分享

微信扫一扫

零基础C++学习

yongxinz 2022-02-26 阅读 55
c++

目录

第一章 C++和C语言的区别

1.1头文件和命名空间namespace

创建源文件是.cpp 文件,头文件不变,依旧是.h文件

  • 包含头文件的方式

    • 包含自己的头文件没有任何区别 #include "myHead.h"

    • 包含库目录

      • C语言中的: 采用原来方式包含可以,可以用C++包含方式,去掉.h 加个c

      • iostream C++标准输入输出流的头文件

  • 命名空间的引入

    • 命名语法

//1.基本创建空间方法
namespace 空间名
{
	int a;
    void print(){}
}
//2.学会访问命名空间中的东西
//2.1 用空间名限定去访问
int main()
{
	空间名::a=1001;
    空间名::print();
    return 0;
}
  • 函数在命名空间里声明,在命名空间外定义

    #include<iostream>
    using namespace std;
    
    namespace box
    {
    	int a = 1;
    	void test01();//命名空间中声明
    }
    
    void box::test01()  //命名空间外定义
    {
    	cout <<box:: a << endl;
    }
    
    
    
    int main()
    {
    	box::test01();
    	system("pause");
    	return 0;
    }

  • 可以增加标识符的使用率,C语言同一个作用域下不允许定义相同的标识符

  • 作用域分辨符::

    • 空间名限定,类名限定(后面讲)

    • 用来标识全局变量

  • using语法 ,可以省略前缀的写法

using namespace 空间名;   //就可以省略当前的空间名
//只在当前作用域下有效

空间名的嵌套与空间内容访问

namespace A
{
    int aa=1;
	namespace B
    {
        int bb=1;
    }    
}
A::B::bb=1001;		//剥洋葱
using namespace A::B;
bb=1002;

命名空间中使用using 语法会出现二义性

#include<iostream>
using namespace std;

namespace box
{
	int a = 1;
	
}
namespace tank
{
	int a = 2;
}


int main()
{
	//cout << a << endl; 出现二义性 不知道输出哪个a  要加作用域分辨符限定 
	cout << box::a << endl;
	cout << tank::a << endl;
	system("pause");
	return 0;
}
举报

相关推荐

0 条评论