第一天 C++参考书本以及namespace讲解

一、语言形象化图解

二、参考书籍

The C++ Programming language(有中译本)
作者就是C++之父 Bjarne Stroustrup
作为C++字典来查阅

The C++ Standard Library :A Tytorial and Reference
学习C++库函数所用

三、文件后缀

  • 头文件
    例如 world.h
    特别的:linux上 world.hpp
  • 源文件
    例如 world.cpp
    特别的:linux上 world.cxx

四、今日编码规范

一、

不准使用“制表符”和“分页”等特殊字符
因此,在IDE中将“制表符”(Tab键)设置并替换成4个空格

二、

函数必须总时将返回值明确列出
若不写返回值,编译器会默认返回int 不同编译器决策不同,有的会直接报错

五、C++标准库头文件

规定C++头文件里没有.h
例如#include<iostream>

六、namespace(重点)

命名空间namespace
例如:

#Include<iostream>
Int main(){	//std就是一个命名空间
std::cout << “Hello World!<< std::endl;	
//具体使用就是xxx::yyy
//xxx就是命名空间的名字    yyy就是此命名空间中的变量
return 0;
}

namespace干嘛用的,为什么要有?

命名空间是用来组织和重用代码的。如同名字一样的意思,之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。

举个例子:

在一个年级中,有两个人都叫 张三
当开年纪大会时,年级主任在讲台上点名
年级主任:张三!
此时两个张三都会喊到
那年级主任到底喊的是哪个张三?

现在我们引入命名空间

将两个张三分为一班张三,二班张三
然后年级主任在讲台上点名
年级主任:张三!
此时两个张三就会疑惑了,干脆懒得理年纪主任了
年级主任脸一红知道自己说话意思不明
年级主任赶紧掏出月光宝盒,“时间回退!”
年级主任重新上台:“我先声明一下,我等下点的都是一班人的名字!”//声明命名空间
“…张三!”
这个时候一班的张三就会回应,二班的张三就不会应答

写成代码就是

#include<iostream>		//“我先声明一下,我等下点的都是一班人的名字!”
using namespace std;
Int main(){
cout << “Hello World”<<endl;	//张三!
return 0;
}

“学到了!这就去对线!”
“别去!他们坑多!”

强烈不建议使用上面using namespace std;这种用法
举个例子:

还是之前那个年级主任点名
“先声明,我点的是一班人的名字”
“另外,我也要点二班人的名字”
“张三!”
那这样两个张三又懵逼了

//假设现在有两个命名空间a,b,他们俩个命名空间中都有一个98k的变量名字
//小明聪明一世糊涂一时,不知道b里面也有个98k的变量名字
小明写了如下代码

#include<iostream>
using namespace a;
using namespace b;
int main(){
return 98k;
}

写完给编译器一看,编译器:WDNMD,这98k说的是哪个98k?爪巴!

所以说建议写成如下形式

#include<iostream>
using std::cout;
using std::endl;
int main(){
cout << “Hello World” << endl;
return 0;
}

要用什么就using什么

最规范的写法

#include<iostream>
Int main(){
std::cout<<”Hello World!<<std::endl;		//老写std::好麻烦(qwq)
return 0;
}

七、代码编译运行过程

Compiler:编译器

Precompile:预编译,预处理 ps:负责代码文本的替换工作(include<xxx>等)

Compile:编译生成Object file(目标文件) 如:”abc.obj”

Link:链接,将目标文件外加库连接为一个可执行的文件

可执行代码:此时文件已经是可执行文件,如”abc.exe”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值