" 热爱本身 就是件很酷的事 "
C++(内容基于慕课网James_ yuan课程)
首先我们需要知道:
- C++的诞生地——贝尔实验室(Bell lab)
- C++之父——比雅尼·斯特劳斯特鲁普博士(为人低调、有问必答)
- C++从上个世纪沿用至今,在C++社区排行榜上一直名列前茅
- C是C++的子集,拿着C的代码在C++的IDE环境中编译是完全没有问题的
- C++是从C的基础上发展来;C语言面向过程、C++支持面向过程+支持面向对象
- 学习C++也就需要有C语言的基础
1、 IDE环境构建
- 此处不详细介绍IDE环境的构建过程
2、C++基本知识
- 新的数据类型
逻辑类型(bool):真值用true、假值用false
bool flag = 0;
if(flag)//判断逻辑真假
{
//to do
}
else
{
//to do
}
- 新的初始化方法
C语言提供的初始化方法 :int x = 1024;
C++提供的二种初始化方法: int x = 1024; int x(1024);
- 随用随定义
C语言的所有变量必须定义于函数体的最前面
int main()
{
int v1 = 3;
int v2 = 4;
v1 = v1 + 2;
v2 = v2 + v1;
return 0;
}
C++的所有变量随用随定义
int main()
{
int v1 = 3;
v1 = v1 + 2;
int v2 = 4;
v2 = v2 + v1;
}
3、C++的输入输出方式
- cout语法形式:
cout<< x <<endl(表示换行);
//直接输出x的值
cout<<"x + y = "<< x + y <<endl;
//直接输出字符串x + y =和相对应的值
cout<<x,y,z<<endl;
//不被予许 - cin语法形式:
cin>> x >>endl;
//输出一个数
cin>> x >> y >>endl;
//输出多个数 - 优点:
不用关注占位符
不用关注数据类型
不易出现问题
4、C++新特性以及输入输出演示
//要求:提示用户输入一个整数,将该整数分别以8进制、10进制、16进制打印在屏幕上
//要求:提示用户输入一个布尔值(0或1),以布尔方式将值打印在屏幕上
#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;
//oct dec hex 分别是8进制、10进制、16进制的英文缩写
cout<<"请输入一个布尔值(0或1):"<<endl;
bool y = false;
cin>> y;
cout<< boolalpha << y <<endl;
system("pause");
return 0;
}
5、C++之namespace
定义空间关键字:namespace
namespace A
{
int x = 0;
void f1();
void f2();
}
namespace B
{
int x = 2;
void f1();
void f3();
}
如果命名空间C想要调用A、B的数据
cout<< A::X <<endl;
B::f1();
6、namespace演示
此处做些许解释
- system()函数是包含在头文件#include <stdlib.h>里面的、若要调用此函数、需要加上头文件
- cout()、cin()函数包含在头文件#include < iostream>里、且包含在此库中的命名空间std下、于是调用时,需要加上std::cin()或者是std::cout()、若在程序开头写上了using namespace std;那么则不需要写出std::
- 由于fun2()是B命名空间所特有的、在主函数上使用using namespace B;那么可以将B::fun2()写成fun2()
#include <stdlib.h>
//system()函数包含在此库里
#include <iostream>
//cout()、cin()函数包含在此库里,且包含在此库中的命名空间std下
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<< "2B" <<endl;
}
}
using namespace B;
int main(void)
{
cout<<"hello"<<endl;
cout<<A::x<<endl;
B::fun();
B::fun2();
//由于想到fun2()函数在B中是特有的,可以直接执行fun()
fun2();
system("pause");//将呈现为-请按任意键继续
return 0;
}
7、综合练习
//知识点: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(void)
{
int arr1[4] = {3,4,1,7};
bool isMax = false;
cin>>isMax;
cout<<CompA::getMaxOrMin(arr1,4,isMax)<<endl;
system("pause");
return 0;
}