IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++第一天 1.0 -> 正文阅读

[C++知识库]C++第一天 1.0

一.hello world的书写

  1. 头文件#include
  2. 使用命名空间 :using namespace std;
    1. 输出:cout<<想输出的内容<<endl;
  3. 如果屏幕一闪而过:system(“pause”);
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable : 4996)
#include<iostream> //标准输入输出流 in 输入 out 输出
using namespace std;//使用命名空间 打开一个叫std的“房间”
int main()
{
	//cout 标准的输出(在头文件#include<iostream>中)
	//endl:end line结束并且换行\n
	cout << "hello world" << endl;
	/*如果不加using namespace std;
	则改成std:cout << "hello world" << endl;
	*/

	system("pause");//阻塞功能
	return 0;
}

.
.
.
二.双冒号作用域运算符

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable : 4996)
#include<iostream> //标准输入输出流 in 输入 out 输出
using namespace std;//使用命名空间 打开一个叫std的“房间”
int atk = 200;//全局变量

void test01()
{
	int atk = 100;//局部变量

	cout << "攻击力为:" << atk << endl;//输出结果为100,变量取值的就近原则

	//若想输出全局变量,用双冒号运算符
	//双冒号作用域运算符 '::' 
	cout << "全局攻击力为:" << ::atk << endl;
}

int main()
{
	test01();

	system("pause");
	return 0;
}

.
.
.
三.namespace(命名空间)的使用
必须在全局作用域下声明!using namespace std;

  1. 解决名称冲突问题
    在头文件王者荣耀和头文件LOL同样有goatk()函数

头文件王者荣耀.h

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable : 4996)
#include<iostream> //标准输入输出流 in 输入 out 输出
using namespace std;//使用命名空间 打开一个叫std的“房间”

//void goatk();改成用namespace命名
namespace KingGlory
{
	void goatk();
}

源文件王者荣耀.cpp

include"KingGlory.h"
void KingGlory::goatk()
{
	cout<<"KingGlory攻击指令"<<endl;
}

.
.
.
头文件LOLh

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable : 4996)
#include<iostream> //标准输入输出流 in 输入 out 输出
using namespace std;//使用命名空间 打开一个叫std的“房间”

//void goatk();改成用namespace命名
namespace LOL
{
	void goatk();
}

源文件LOL.cpp

#include"LOL.h"
void LOL::goatk()
{
	cout<<"LOL攻击指令"<<endl;
}

.
.
.
操作文件

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable : 4996)
#include<iostream> //标准输入输出流 in 输入 out 输出
using namespace std;//使用命名空间 打开一个叫std的“房间”
include"LOL.h"
include"王者荣耀.h"

int main()
{
	//goatk();//由于两个头文件都有goatk(),此时系统不知道该调用哪个,因此在头文件中用namespace命名

	//正确操作:用::准确说明使用哪个区域的goakt();
	LOL::goakt();
	KingGlory::goatk();

	system("pause");
	return 0;
}
  1. namespace命名空间下 可以放函数、变量、结构体、类
namespace A
{
	void fun();
	int a=10;
	struct person
	{

	};
	class Animal();
}
  1. 命名空间可以嵌套命名空间,并且命名空间可以起别名
namespace A
{
	void fun();
	int a=10;
	struct person
	{

	};
	class Animal();

	namespace B
	{
		int b=20;
	}
}

int main()
{
	//给命名空间起别名
	namespace C=B;//namespcae 新名字=旧名字
	
	//作用域B下的b的值为
	cout<<"作用域B下b的值为:"<<A::C::b<<endl;

	system("pause");
	return 0;
}
  1. 命名空间是开放的,可以随时加入,并且不会覆盖前面在该空间中已经定义的元素
  2. 匿名空间
namespace//不起名字
{
	int m_a=0;
	int m_b=1;
}
当写了无名命名空间,相当于写了static int m_a=0;static int m_b=0;
只能在当前文件中使用(静态变量)

.
.
.

四.using声明和using编译语句

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable : 4996)
#include<iostream> //标准输入输出流 in 输入 out 输出
using namespace std;//使用命名空间 打开一个叫std的“房间”
int atk = 200;//全局变量

namespace KingGlory//命名王者荣耀空间
{
	int a = 10;
}

namespace LOL//命名LOL空间
{
	int a = 20;
}

//using声明
void test01()
{
	int a = 20;
	/*using声明(注意避免二义性问题)
	* 写了using声明后,下面这行代码说明以后看到的a是KingGlory下的
	* 但是编译器有就近原则,因此编译不通过!
	*/
	using KingGlory::a;
	//输出
	cout << a<< endl;
}

//using编译指令
void test02()
{
	int a = 20;
	//using编译指令
	using namespace KingGlory;//打开房间
	cout << a << endl;

	/*结果还是20,打开了房间但没说要用房间内的a
	即就近原则的优先级>编译指令*/


}

//用using编译指令打开多个房间
void test03()
{
	using namespace KingGlory;//打开王者荣耀房间
	using namespace LOL;//打开LOL房间

	//如过打开多个房间也要避免二义性!
	cout << LOL::a << endl;//在a前加上作用域LOL 
}

int main()
{
	test01();
	//test02();
	//test03();

	system("pause");
	return 0;
}

文章转自布尔博客
欢迎关注技术公众号,获取更多硬件学习干货!

在这里插入图片描述

我们能为你提供什么?
技术辅导:C++、Java、嵌入式软件/硬件
项目辅导:软件/硬件项目、大厂实训项目
就业辅导:就业全流程辅导、技术创业支持
对接企业HR:培养输送优质性人才

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:21:43  更:2021-08-22 13:24:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 4:50:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计