C++开发环境
纯语言开发要求:C++IDE。
极简C/C++ 语法规则
仅记原始规则,把握编程的本质,不做孔乙己,要做说干就干的平头哥。
原始的规则:
- 各"语法单位"(组成部分)使用任意个(至少1个)分隔符隔开。分隔符有:空格,或tab键,或换行符。
- 必须使用英文输入法输入(仅双引号括起来的"字符串"中可使用中文)
- 每条代码的后面使用 ;表示这个指令代码结束。
- #include等预处理指令,必须一条指令占一行
其他规则不需记忆,在后面的项目实践中掌握。不要刻意记忆C++的语法规则(记也没有意义)。初学时,仅掌握最基本的语法规则即可!
代码风格
代码风格很差的代码:常见于报价低但是由要求给源码的外包软件中。(目的:让人看不懂)
良好的编程习惯:变量在定义时,进行初始化:int age = 0;
程序员的第一印象,不是外表,而是自己的代码风格:命名风格、缩进风格、注释风格
静态库:只想把接口留给别人,不想给出源代码
头文件的使用
程序如戏,程序中有很多元素(std::cout, system), 都是一个个演员。但是他们之间都互不认识, 但是却要一起合作, 强行编译, 就会导致错误!得预先介绍他们, 知道他们各自的名号和用法。
解决方案:包含相应的头文件! (头文件中, 含有相关元素的介绍说明)
std::cout 头文件: iostream
system 头文件: Windows.h
#include <Windows.h> 表示把文件Windows.h中的所有内容拷贝(复制)到"这里"。
头文件的查找路径
#include <Windows.h>,<>表示,从编译器默认的路径中去找文件stdio.h。这个默认路径,取决于编译器。不同平台下不同编译器的路径都不相同。这个默认路径下,已经包含了c标准库所需要的所有头文件。使用C++标准库的头文件使用该方式。
#include "mytest.h",""表示从当前目录下寻找文件mytest.h,如果在当前目录下找不到,再从编译器默认的路径中查找。使用用户自定义的头文件使用该方式。
头文件的位置
要求放在文件的最前面。#include 的作用是,把相关的声明拷贝到这个文件内,所以都习惯把#include 放到文件的最前面。
main函数
main函数是主程序的唯一入口。一个程序,必须要有一个main函数,而且也只能有一个main函数。
main函数的格式:
格式1:int main(void) { }
格式2:int main(int argc , char* argv) { }
其他函数
IT格言:不要重复制造轮子 ---《人月神话》。解读:尽可能使用已经开发好的函数。
其它函数:C标准库、C++标准库、第三方开源框架、公司内已经开发好的函数、程序员自己定义的函数
数据格式
字符串常量
字符串常量:内容永远不会发生变化的字符串,用半角(英文输入法)双引号""括起来。
std::cout << "我的战斗力是" << 10000; //"我的战斗力是"是字符串常量,10000是整数常量
常量和变量的区别:常量在程序整个运行期间,值不会发生任何变化。变量:在程序整个运行期间,值随时可以发生变化。
cout和printf的使用
C++风格的打印:
实例:std::cout << "你好!" << std::endl;
等效于:std::cout << "你好!";std::cout << std::endl;
std::cout, 可以连续输出任意多个数据,中间用 << 隔开。
使用要求:需要包含头文件 #include <iostream>,注意不是#include <iostream.h>
std是一个命名空间,cout是std命名空间内的一个"对象"。endl也是std命名空间内的一个对象,用来表示"回车符"(换到下一行的最前面)std::cout << 相当于调用了一个特殊的函数(但不是函数),用来打印数据。
C风格的打印:
实例:printf("你好!\n");
等效于:printf("你好!");printf("\n");
printf("工资:%d 年假:%d", 30000, 12); printf("圆周率:%f", 3.1415);
说明:占位符的使用、%d 整数、 %f 浮点数(带小数部分的数据)
使用要求:需要包含头文件 #include <stdio.h>
特别注意:std::cout和printf还有很多用法,现在只需要掌握以上最常用的用法,其他的用法现在不需要关注。
打印语句的使用场合:控制台应用程序的输出、程序调试Bug的重要手段
cin的使用

当缓冲区为空时,程序才会暂停,让用户输入数据。输入回车后,数据全部送到输入缓冲区。
cpp
#include<iostream>
#include<Windows.h>
int main(void){
float height;
std::cout << "请输入您的身高:[单位-米]" << std::endl;
std::cin >> height;
std::cout << "您的身高是: " << height << "米" << std::endl;
system("pause");
return 0;
}
小结:对于char, int, float等基本数据类型, 直接使用std::cin >> 输入即可.
特别注意:输出使用 std::cout << 输入使用 std::cin >>
命名空间的使用
C++避免名字冲突:使用命名空间
cpp
#include <iostream>
#include <string>
namespace China {
float population = 14.1; //单位: 亿
std::string capital = "北京";
}
namespace Japan {
float population = 1.27; //单位: 亿
std::string capital = "东京";
}
using namespace China;
using Japan::population;
int main(void) {
std::cout << "首都:" << capital << std::endl;
std::cout << "人口:" << population << std::endl; //出错!
system("pause");
return 0;
}
//错误提示:population": 不明确的符号
//错误原因:
using namespace China; //China命名空间中有population
using Japan::popolation //又单独声明了Japan中的population
//解决方案:指定完整的域名(Japan::population )来表示。
std::cout << "首都:" << capital << std::endl;
std::cout << "人口:" << Japan::population << std::endl;
C++程序编译过程

使用注释的要点
注释的目的:为了让程序更方便阅读("可读"),以便于维护。
需要注释的内容:重要变量名的作用(用来表示什么)、比较复杂的算法思想、程序中的关键步骤
注释的方式:单行注释 // 在行尾,或代码的上一行;多行注释 /* */ 不支持嵌套。
图形开发环境
|-----------|------------------------------------------------------------------------|
| 图形开发环境 | 特点 |
| MFC或WPF | 使用方便, 但是需要先熟悉C++, 仅适用于Windows平台。 |
| QT | 跨平台, 也要先熟悉C++ |
| 图形库OpenGL | OpenGL非常强大, 很多大型游戏引擎就直接使用OpenGL绘制图像。 缺点: 太复杂, 不适合初学者 |
| EasyX | 开发简单的图形界面应用程序 适用于Visual C++或VS其他版本,使用简单, 适合C/C++初学者构建图形界面. 但在实际工作中用不上。 |
积木式编程训练
Scratch介绍:Scratch是一款由美国麻省理工学院(MIT) 设计开发的开源的图形化编程工具。直接用图形化、积木式的方法开发应用程序。
目的:忽略语言细节,专注编程的本质:编程思维;快速掌握编程技能。
应用:可直接开发各种游戏、应用。结合Arduino开发板(一种开源硬件),可开发各种极客项目、机器人项目。
适用于:初学编程的所有人群。
不适用于:已经具备丰富编程经验的程序员。
Scratch使用方式:网页方式(国外网站,受网速影响严重)https://scratch.mit.edu/
离线式:下载安装Scratch
代码对比工具
明明文档或代码是一样的,为什么还是出错?
使用场合:学习时,和参考代码做比较、开发时,在多个版本之间做比较。
beyond compare 代码对比工具