4-C++远征之起航篇-学习笔记
c++教程起航篇
我们会讲C++那些事,C++与C语言的关系。
mark
C++诞生于贝尔试验室。
mark
C++之父: 本贾尼·斯特劳斯特卢普
C++社区排行榜
mark
最新排行,c++排名第三,Python排名第四
C++语言的应使用领域:
嵌入式(手机,机顶盒),游戏编程,网络编程,系统编程
快,省
C与C++的关系:
C语言是C++的子集。
mark
C++在语法上完全兼容C,C++是从C的基础上发展而来的。
- c语言是面向过程的语言,而C++是面向过程的语言又是面向对象的语言。
- C语言的运行效率比c++更好。
学习C++,基础是学习C语言
C++ IDE环境调试
我的IDE 与 IDE初体验
什么是IDE环境?
IDE: Integrated Development Environment
集成开发环境
一般包括代码编辑器,编译器,调试器和图形使用户界面工具。
iso文件,虚拟光驱,找到setup.exe.
Visual Studio 2015 + Visual Assist X
链接: https://pan.baidu.com/s/1SgdThGYaLDyXDFKvaBSa5A 密码: 2333
安装后会提醒升级,就更了吧。
由于我们学习c++,可以只安装C++部分。
- 如何新建项目
新建项目 -> 选择Visual C++ -> win32控制台应使用程序
mark
选择空文件,了解程序从无到有。
- 如何新建文件
mark
源文件上点击右键增加新建项。
新建时选择cpp文件。
- 如何设置字体字号(工具->选项->字体和颜色)
C++之初体验
那么就让我们驶出远征中的第一步->Hello C++
#include<iostream>using namespace std; //关于这里,且听下回分解int main(){ cout<<"Hello C++"; //在此填写我们的开篇Hello C++ return 0;}
C++的新特性
C++基本知识
新的数据类型,新的初始化方法,随使用随定义的特性
C语言中的数据类型
mark
- c++新添加bool数据类型,数值为true与false
markmark
优:快捷方便,还有视觉上清晰易懂,程序易读易懂
- c++除了拥有语言自带的初始化方式外,新添加了一种定义方式(直接初始化)
C语言提供的初始化方法: int x =1024
mark
除了与c语言一样的复制初始化,还有自己独有的直接初始化 优点:很快捷方便
- c++可随使用随定义,而c的对变量的定义必需放置在函数体最前面
markmark
c语言方式下,程序长了还得调到上面定义变量很不方便。
总结: 新的数据类型(布尔类型),新的初始化方法(使用括号括起来直接初始化),随使用随定义的特性。
C++的输入输出方式
c语言中的I/O 方式
mark
C++中的I/O 方式
mark
cout 语法形式:
cout << x << endl;
两个小于号(中间没有空格),输入变量x(不需要区分类型,不需要%d等)。
endl
和c语言中的\n
是等效的。
cout << "x+y=" << x+y << endl;
错误示例如下:
cout << x,y,z << endl;
cin 语法形式:
cin >> x;
将外界的输入传递到x。不需要关注变量x的类型,不需要c语言的格式符。
cin >> x >> y;
cin输入方式, x y为变量. 依次为多个变量赋值。
这样的输入输出方式有哪些便利?
- 不使用关注占位符。
- 不使用关注数据类型。
不容易出现问题
C++新特性及输入输出演示小demo
- 八进制:oct;
- 十进制:dec;
- 十六进制:hexl
- bool类型输出:
boolalpha
;
mark
c++中默认的i/o类型为十进制;假如不加说明,是无法辨认0
,0x
开头的八进制和十六进制的。在cin或者cout中指明进制类型后,该进制将一直有效,直到再次改变它的进制。
4-C++-hexConvert/main.cpp
#include<iostream>#include <stdlib.h>using namespace std;int main(){ cout << "请输入一个整数:" << endl; int x = 0; // 随使用随定义 cin >> x; cout << "八进制:" << oct << x << endl; // 八进制 cout << "十进制:" << dec << x << endl; // 十进制 cout << "十六进制:" << hex << x << endl; // 十六进制 cout << "请输入一个布尔值(0或者1):"<< endl; bool y = false; cin >> y; cout << boolalpha << y << endl; // 布尔类型输出 system("pause"); return 0;}
f5开始调试
mark
c++命名空间(namespace)
什么是命名空间
简言之: 就是为程序划片取名字
mark
namespace区别来自不同的对象的相同名字的函数,为程序划片取名字。
为什么要有命名空间?
mark
A公司和B公司都有小王,那么不指明是哪个公司的小王就会产生不知道是哪个小王。
程序中的命名空间
mark
C公司购买了A和B的程序库,想要用A的变量x,B公司函数f1怎样办?
A和B就要用命名空间
命名空间关键字:
namespace A
,namespace B
namespace A{ int x = 0; void f1(); void f2();}namespace B{ int x = 2; void f1(); void f3();}
要调使用命名空间内变量或者函数写法(C公司要用的话):
// 输出A中的变量xcout << A::x << endl;// 用B中的f1B::f1();
namespace演示代码
- 正常的
system("pause")
包含于stdlib.h
#include <stdlib.h>int main(){ system("pause"); return 0;}
- 要引使用相应的头文件,还要引使用对应的命名空间才可以正常运行。
#include<iostream>
否则报错,cin cout 未公告的标识符
using namespace std;
没有的话仍然报错, 未公告的标识符, 由于iostream 中的cin cout在命名空间当中。
#include "stdafx.h"#include <stdlib.h>#include<iostream> // cin cout 步骤1using namespace std; // 步骤2int main(){ cout << "hello" << endl; system("pause"); return 0;}
模拟A,B公司写代码,C公司用
主函数为main函数模拟c公司。
4-C++-CompanyABC/main.cpp
#include <stdlib.h>#include<iostream>namespace A { int x = 1; void fun() { std::cout << "A Company function" << std::endl; }}namespace B{ int x = 2; void fun() { std::cout << "B Company function" << std::endl; } void fun2() { std::cout << "Only B Have" << std::endl; }}using namespace B;int main(){ std::cout << A::x << std::endl; B::fun(); fun2(); // using name space B; + fun2(); 等价 B::fun2(); system("pause"); return 0;}
mark
不写using namespace std
时,想要使用cin cout的话, 用std::cin
std::cout
章节练习(命名空间)
定义一个命名空间为myNum,在该命名空间中定义一个整型变量x,并给该变量赋值为105;用C++新特性判断myNum命名空间下的变量是奇数还是偶数。
4-9-C++-namespaceDemo/main.cpp
#include <iostream>#include <stdlib.h>using namespace std;namespace myNum //填写命名空间的关键字{ int x = 105;}int main(){ // 用bool类型定义isOdd,作为状态位 bool isOdd = false; if (myNum::x % 2 == 0) { //改变状态位的值,使其为false isOdd = false; } else { //改变状态位的值,使其为true isOdd = true; } // 判断状态位的值 if (isOdd) { // 假如状态位的值为true,则打印变量x是奇数 cout << myNum::x << "是奇数"<<endl; } else { // 假如状态位的值为false,则打印变量x是偶数 cout << myNum::x << "是偶数"<<endl; } system("pause"); return 0;}
5-1 综合练习
- 知识点:bool类型 命名空间 输入输出。
用一个函数找出一个整型数组中的最大值最小值。
5-1-c++-boolNamespaceCinCout/main.cpp
一个函数, 传入整型数组,求最大最小值
/********************************************************//*知识点:bool类型 命名空间 输入输出 *//*题目要求: *//* 用一个函数找出一个整型数组中的最大值最小值。 *//*******************************************************/#include <stdlib.h>#include <iostream>namespace CompA{ int getMaxOrMin(int *arr, int count, bool isMax) // 数组,数组元素个数,最大还是最小(True 最大,False最小) { int temp = arr[0]; // 先拿到整个数组中的第一个元素,一旦发现比它大的,就把刚发现的赋值给它 for (int i = 1; i < count; i++) // 经典写法int i=0; i < count; 既然我们已经把第0个取了,我们可以从第一个开始比 { if (isMax) { if (temp < arr[i]) { temp = arr[i]; } } else { if (temp > arr[i]) { temp = arr[i]; } } } return temp; }}int main(void){ int arr1[4] = { 3,5,1,7 }; bool isMax = false; // 与形参区别开 std::cout << "您想要求数组{3,5,1,7}最大值还是最小值?(0最小,1最大)" << endl; std::cin >> isMax; std::cout << CompA::getMaxOrMin(arr1, 4, isMax) << std::endl; system("pause"); // stdlib.h return 0;}
mark
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 4-C++远征之起航篇-学习笔记