一、底层
- c++代码
- 编译器编译(翻译单元):把iostream粘贴到代码文件,编译成目标文件object file
- 链接:粘在一起变成exe文件
- 目标平台机器码(cpu执行的指令) :x64编译器输出x64机器代码在64位cpu上运行,x86=win32
编译F7:
- 预处理.i文件:处理预处理器语句:#include:预处理器打开指定文件.h粘贴到代码中、if、ifdef、progma #define简单替换
- 抽象语法树被创建、优化汇编语言
- 发现一个cpp中的错误
- 生成机器语言.ASM .obj翻译单元 一块存储地方
链接F5:
- 链接.c文件 mian()入口 入口可以自定义
- 错误代码有LNK
- 编译时要有函数声明,声明确定了函数名和函数参数、函数返回,链接时会找函数体
- 如果不调用,也会发生链接错误,因为鬼魂函数会调用,除非告诉他只在这个cpp文件内部会被调用static,且不调用
- #include定义函数被插入两个cpp引起链接错误解决方法:incline函数体替代;static;直接写入
//java会多一个虚拟机(翻译者),运行时会进行系统优化
二、专业术语
IDE:集成开发环境:编写和调试代码的工具 such as:visual studio2017(已知最新)
配置:debug and relase:构建项目的规则
解决方案平台:编译代码的目标平台
SDK:软件开发包,库
二、创建项目
- 打开visual studio
- 点击创建新项目(第一次点要在弹出界面选择visual C++->空项目)
- 设置项目名称和路径
三、创建文件
- 项目下右击源文件->添加->新建项->c++文件
- 设置文件名称
四、编写代码
#include <iostream>
using namespace std
int main{
cout<<"hello C++"<<endl;
int a=0;
cin>>a;
cout<<"a="<<a<<endl;
//单行注释
/*多行注释*/
system("pause");
return 0;
}
include <iostream> 预处理语句(preprocess):#后面都是预处理语句
iostream 头文件
main函数:程序的入口,特殊函数默认返回0
<<:代表一个函数,想成代码流入cout
五、运行程序
点击运行
六、函数的分文件编写
- 创建.h头文件:项目下右击头文件->添加->新建项:swap.h
- 创建.cpp后缀名的源文件:右击源文件->添加->新建项:swap.cpp(代表c++)
- 在头文件swap.h 中:写函数的声明,#pragma once(防止头文件重复包含)#include <iostream> using namespace std; 需要其他类时#include "point.h"
- 在源文件swap.cpp中:写函数的定义,成员函数加上作用域void Point:: getX(),#include "swap.h"(" "代表自定义头文件)
- main中:#include "swap.h"
or just声明函数,链接时编译器会找到它
七、快捷键
- ctrl kc 多行注释
- ctrl ku 取消多行注释
- shift tab 多行缩进
八、查看类模型rj:类似一行一行写的结构图
- 开始vs下的开发人员命令提示工具
- 跳转盘符F:->回车
- ->跳转具体路径:cd 把路径粘过来(找到文件夹)->回车(可以看路径下目录dir)
- ->查看命令:cl /d1 reportSingleClassLayout类名 文件名(可tab自动补齐)