C++ Primer Plus 第二章 开始学习C++
进入C++
#include <iostream>
int main()
{
using namespace std;
cout<<"Come up and C++ me some time. ";
cout<<endl;
cout<<"You won't regret it!"<<endl;
return 0;
}
作为接口的函数头
C++句法要求main()以int main()开头 , 括号内是形参列表
main()被启动代码调用 , 启动代码是由编译器添加到代码中的
C语言中 , main()不加int也表示函数类型为int , 但是cpp中淘汰了这种用法
也可以用 :
int main(void)
关键字void明确指出 , 函数不接受任何参数
让括号空着和用void等效
尽管void main()也是可行的 , 但是应当避免这种格式(然而我尝试在clion中 , 似乎并不能)
为什么main不能用其他名称
通常C++程序必须包含一个名为main的函数 , 如果没有 , 编译器将指出没有main的错误
然而存在一些例外情况 , 如DLL动态链接库的DLL模块不是独立的程序 , 用于专用环境中的程序(如机器人中的控制器芯片)可能不需要用main
这种情况下 , 有一个隐藏的main , 它调用了_tmain()
C++预处理器和iostream文件
C++有一个预处理器 , 在进行主编译之前对源文件进行处理 , 它处理以#开头的编译指令
对
include
该编译指令将导致预处理器将iostream文件的内容添加到程序中 , 在代码被编译之前 , 替换或添加文本
Q : 为什么要将iostream文件中的内容添加到程序 ?
iostream中的io指的是输入和输出 , C++的输入输出方案涉及iostream文件中的多个定义 , 为了使用cout来显示信息 , 程序需要这些定义
# include编译指令将导致iostream文件中的内容随源代码文件的内容一起被发送给编译器 , iostream文件中的内容将取代#include
头文件名
像iostream这样的文件叫做包含文件 , 由于它们被包含在其他文件中 , 也叫做头文件
C++的编译器自带了很多头文件 , 每个头文件都支持一组特定的工具
C语言的传统是头文件使用.h扩展名 , 如math.h ,但在cpp中 , 换成了以c为前缀 , 去掉扩展名
即cmath
名称空间
即
using namespace std;
这叫做using 编译指令
名称空间支持是一项C++特性 , 有助于组织代码
一个可能的问题是两个封装好的产品都含有wanda的函数 , 那么使用wanda函数时编译器不知道用哪个 , 因此名称空间可以使得产品被封装在一个叫做名称空间的单元 , 通过 :: 来查询(话说这个markdown是冒号+星号的markdown是这个 😗
当不想用::时 , 可以用using编译指令 , 即
using namespace std;
更好的方式是 :
using namespace std::cout;
using namespace std::cin;
using namespace std::endl;
使用cout进行C++输出
cout<<"Hello World!";
<<符号表示该语句将把这个字符串发送给cout , 指出了信息流动的路径
cout是一个预定义的对象 , 知道如何显示字符串 , 数字和单个字符等
cout的对象属性包括一个插入运算符(<<) , 可以将其右侧的信息插入到流中
控制符endl
endl是一个特殊的C++符号 , 表示重起一行 , 是一个控制符(manipulator)
换行符
C++中还有换行符\n
endl和\n的区别是 , endl确保程序继续运行前刷新输出(将其立即显示在屏幕上) , \n不能
C++其他语法
类简介
cout是一个ostream类对象 , ostream类定义(iostream文件的一个另一个成员)描述了ostream对象表示的数据以及可以对它执行的操作
cin是一个istream类对象 , 也在iostream文件中定义
main函数调用
main函数返回0给了谁 ?
可以将计算机操作系统(UNIX或者Windows)看作调用程序 , 它们调用了main函数 , 返回结果给了操作系统
通常规定是 , 如果退出值为0则说明程序运行成功 , 为非0则说明存在问题
如果C++程序无法打开文件 , 可以将他设置为返回一个非零值 , 然后涉及外壳脚本或者批处理文件来运行该程序
using namespace std的使用
- 放在函数定义前 , 使得所有函数都能使用std
- 放在特定函数定义中 , 使得该函数能使用std
- 使用using std::cout
- 不用using , 用 std::cout

浙公网安备 33010602011771号