说明:本人是前端er,因为最近对 UE4(一个游戏开发引擎)产生了兴趣,而这个引擎源开发游戏时需要用到 C++ ,所以就开始入坑 C++ 了。现将自己学习 C++ 的笔记整理并分享出来,以便一些想入门 C++ 的朋友一起学习,将会以系列教程的的形式来编写,这是第一篇。

C++ 是什么?

我们都知道,目前的高级编程语言主要分成两种,一个是面向过程的比如 C,一个是面向对象的比如 Java。而 C++ 时同时整合了这两种特性的语言,在C语言基础上添加的类代表的面向对象。另外,C++模板还支持支持的泛型编程(后面会介绍)。至于 C++ 发展历史,这里不做介绍,大家可以自行查找。

在 C++ 最初发布的时候,在编译过程分成两段的,先是把 C++ 编译成 C,再把 C 编译成机器代码的,就像我们前端写 TS 需要先将 TS 转换成 JS 后浏览器才能识别一样。但是现在的编译器一般都不需要先将C++转换成 C 的,而是一步到位的。

环境搭建

如果是使用 windows 平台,常用的编译器有 visual studio , visual c++6.0 ,borland c++ 和 code block 等。 我相信好多朋友对 visual c++6.0 , borland c++ 和 code block 肯定都不陌生,这是因为大学做课程设计时,老师经常推荐给我们的编译器,但是我不推荐,原因有二,第一,界面长得太丑了,起码是20年前的界面风格,第二,不够智能,比如自动补全或错误提示等都做得不好。至于 visual studio 确实很强大,但是对于新手也不太推荐,毕竟刚开始只是写 helloworld 级别的,如果使用这个就有点杀鸡用牛刀的感觉了。那怎么办呢?

我推荐的做法是,在 vscode(注意不是 visual studio)中编写 C++ 源码,然后使用 gcc 来编译源码,即把编辑器和编译器分开来用。

如果是使用 ubuntu 等 linux 系统,默认是装了 gcc 的,这里也不详细展开。本文主要讲的是 windows 平台下的搭建。

首先,安装 vscode ,同时要装上 C/C++ 插件,它会有自动补全和错误检测等功能(如果没有提示,可以安装 gcc 后再回头不试试)。

比如,我平时写前端,习惯了用 var 来声明变量,则会有如下提示,因为 c++ 是没有 var 标志符的:

鼠标移上去就会显示详细的错误信息:

还有关键字的自动补全,比如我们定义一个 double 类型的变量,输入 doub 就会有很多的选项:

然后,再来安装 gcc 编译器。windows 平台安装可以安装 mingw。可以到这里下载:MinGW-w64 - for 32 and 64 bit Windows。往下稍微翻一下,选 x86_64-posix-seh。

提示:最好不要选择 MinGW-W64 Online Installer , 因为国内网络被墙的原因,在线安装有很大机率会安装失败。

下载完安装包之后,然后解压,你会发现它里面的目录结构如下:

接下来,还需要配置 path 路径,假如我解压到了 C 盘的 mingw 目录,则在环境变量 Path 中添加如下路径:

C:\mingw\bin

配置完成之后 ,打开命令行工具,cmd 或者 powsershell 都可以,输入 gcc -v

如果看到上面的信息,则说明我们的 gcc 已经配置成功了。如果没有,则检查一下你的 path 路径正不正确,或重启一下电脑试试。

现在编辑器和编译器我们都搭好了,可以快乐的来写 Hello World! 啦。

#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}

然后在当前目录的终端中输入 g++ main.cpp,就会发现当前目录下多了一个 a.exe 文件。,然后,再到终端中输入 ./a.exe 就可以执行该文件,并有 Hello World! 输出了。当然,编译和运行也可以合并成一条命令 g++ main.cpp && ./a.exe,如下:

这段代码也很简单,首先是 #include 预处理指令引入 iostream 这个头文件,然后在 main 函数中输出 Hello World! 。iostream 这个是标准输入输出流的头文件,我们下面使用 std::cout 就在这里面定义的。

OK,这一章节就写到这里,如果有什么疑问的大家可以在评论区交流讨论哈~。

最后,网上也有很多教程是关于如何把 vscode 配置成可以编译 C++ 的,但是我觉得没有必要,我们就只使用 vscode 作为书写代码的编辑器就够了,编译我们使用命令行工具就行。

写给前端同学的C++入门教程(一):概述和环境搭建的更多相关文章

  1. Unix/Linux环境C编程入门教程(4) Debian Linux环境搭建

    Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 1.广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Deb ...

  2. Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建

    1. Kali linux是BT5的晋级版本,用于信息安全.基于Debian7内核.新建虚拟机. 2. 选择默认虚拟机 3. 选择稍后安装操作系统 4.选择Linux Debian7 64位,因为Ka ...

  3. Unix/Linux环境C编程入门教程(15) BT5开发环境搭建

    1. Backtrack 是处于世界领先地位的渗透测试和信息安全审计发行版本.有着上百种预先安装好的工具软件,并确定能完美运行,Backtrack5 提供了一个强大的渗透测试平台--从Web hack ...

  4. Unix/Linux环境C编程入门教程(7) OPENBSDCCPP开发环境搭建

    1. 年发起了OpenBSD 专案,希望创造一个注重安全的操作系统. 2.创建一个虚拟机. 3.选择默认的workstation10.0 4.我们选择稍后安装操作系统. 5.我们选择FreeBSD64 ...

  5. 无废话MVC入门教程一[概述、环境安装、创建项目]

    (转载) 本文目标 1.对MVC有初步的了解 2.能够在VS2010的基础之上安装MVC3的开发和运行环境 3.对MVC框架有概括性的认识 本文目录 1.什么是MVC 2.VS2010安装MVC3 3 ...

  6. Unix/Linux环境C编程入门教程(3) Oracle Linux 环境搭建

    Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 2010年9月,Oracle Enterprise Linux发布新版内核--Un ...

  7. 前端组件化Polymer入门教程(1)——初识&&安装

    前端组件化Polymer入门教程目录: 前端组件化Polymer入门教程(1)--初识&&安装 前端组件化Polymer入门教程(2)--快速入门 前端组件化Polymer入门教程(3 ...

  8. 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放

    要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...

  9. (转)前端构建工具gulp入门教程

    前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具 ...

随机推荐

  1. pwnable.kr之flag

    拿到文件,先运行一下,输出: I will malloc() and strcpy the flag there. take it. 用python查看文件是否有什么保护, Arch: amd64-- ...

  2. 【API进阶之路】用API打造一条自动化内容生产流水线

    摘要:搞定了内容审核之后,我又把抓取工具.内容审核API.文本摘要生成API串联在一起,从抓到审再到编,建立了一条自动化的内容生产流水线,编辑团队只需要做优质内容的推荐就可以了. 上周,运营部将官网上 ...

  3. 虚拟机:主机能ping通虚拟机,虚拟机不可以ping通主机

    解决办法: 1.虚拟机可使用nat模式 2.虚拟机使用桥接模式,并且和主机再同一个ip段内 3.主机的防火墙关闭(不推荐使用,主机不安全) 4.主机中有个ICMPv4-In这个规则需要启用: 打开防火 ...

  4. JS基础回顾_滚动条

    // log function getScrollOffset() { if (window.pageXOffset) { return { x: window.pageXOffset, y: win ...

  5. django之安装和项目创建

    dos界面下安装django 自动下载和安装:cmd:pip3 install  django 手动安装: 1.登录django官网下载django 2.下载地址:https://www.django ...

  6. JS中call()、apply()、bind()的用法

    其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面: 例1 obj.objAge;  //17 obj.myFun()  //小张年龄undefined 例2 shows( ...

  7. Java体系结构介绍

    Java技术的核心就是Java虚拟机——所有Java程序都在其上运行,需要Java虚拟机.Java API和Java,class文件的配合,Java程序才能够运行   为什么使用Java 通过网络连接 ...

  8. java8的::

    public static void main(String[] args) throws Exception { // 第一种方法引用的类型是构造器引用,语法是Class::new,或者更一般的形式 ...

  9. 10.扩展:Zero Copy

  10. 容器云平台No.9~kubernetes日志收集系统EFK

    EFK介绍 EFK,全称Elasticsearch Fluentd Kibana ,是kubernetes中比较常用的日志收集方案,也是官方比较推荐的方案. 通过EFK,可以把集群的所有日志收集到El ...