《C++远征之起航篇》学习笔记
思维导图待添加
1. C++入门
语法角度:C是C++的子集
历史角度:C++是在C的基础上发展而来的,C是面向过程,C++是面向对象+面向过程
2. C++ IDE初体验
2.1 新建项目
开环环境IDE:VC2013
新建 >> 项目 >> Win32 控制台应用程序 >> 位置、名称设置>> 确定、下一步 >> 勾选空项目 >> 完成
图文链接
开环环境IDE:VC++6.0
字体设置:工具 >> 选项 >> 格式
路径设置:工具 >> 选项 >> 目录
第一个程序 Holle World
#include <iostream>
using namespace std; // 使用命名空间
int main()
{
cout << " hello world " << endl; // 输出语句
return 0;
}
2.2 报错解决
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/test.exe : fatal error L
工程 >> 设置 >> 连接 >> 分类:调试 / windows 改为 console
3. C++ 语言新特性
3.1 新的数据类型
除了C语言的数据类型外,还提供了 bool 类型
bool 真值 True 假值 False
bool flag = 0; // bool 类型
if(flag)
{
// To do
}
else
{
// To do
}
3.2 新的初始化方法
C语言只有一种初始化方法:赋值初始化
int x = 1024; // 赋值初始化
C++中提供了两种初始化方法
int x = 1024 // 赋值初始化
int x (1024) // 直接初始化
3.3 随用随定义
C语言中所有变量必须定义在函数体最前面
C++所有变量随用随定义
4. C++ 输入输出方式
C++ 输入输出与 C 语言的流程是相同的,但是方式不同
scanf ==== cin
printf ==== cout
cout << x << endl; // 1.不需要区分数据类型; 2. endl 与 C 语言中的 \n 等效
cout << "x + y =" << x + y <<endl; // 字符串,表达式
cin >> x;
cin >> x >> y; // 多个变量赋值
带来的便利:
- 不用关注占位符,%d %c等
- 不用关注数据类型
- 不易出现问题
示例
#include <stdio.h>
#include <iostream>
using namespace std;
int main(void)
{
int x = 0; // 整型变量用于存储输入值
cout << "请输入一个整数" << endl;
cin >> x;
cout << oct << x << endl; // 输出8进制
cout << hex << x << endl; // 输出16进制
bool y = false; // 随用随定义特性,bool值
cout << "请输入一个布尔值" << endl;
cin >> y;
cout << boolalpha << y << endl; // 输出布尔值
cout << "hello" << endl;
return 0;
}
5. 命名空间
简言之:为程序划片取名字
命名空间关键字:namespace
#include <stdlib.h>
#include <iostream>
using namespace std;
namespace A
{
int x = 1;
void fun()
{
cout << "A" << endl;
}
}
namespace B
{
int x = 2;
void fun()
{
cout << "B" <<endl;
}
void fun2()
{
cout << "FUN2" << endl;
}
}
int main()
{
cout << A::x << endl;
B::fun();
using namespace B;
fun2();
}
5. 综合练习
// 知识点: bool 类型、命名空间、输入输出
// 题目要求:使用一个函数找出一个整型数组中的最大值和最小值
#include <stdlib.h>
#include <iostream>
using namespace std;
namespace CompA
{
int getMaxorMin(int *arr,int count, bool isMax)
{
int temp = arr[0];
for (int i = 1; i < count; i++)
{
if (isMax)
{
if (temp < arr[i])
{
temp = arr[i];
}
}
else
{
if (temp > arr[i])
{
temp = arr[i];
}
}
}
return temp;
}
}
int main()
{
int arr1[4] = {3,5,7,9};
bool isMax = false;
cin >> isMax;
cout << CompA::getMaxorMin(arr1,4,isMax) << endl;
system("pause");
return 0;
}