4-1 c++的新特性(与c语言比较)
一、数据类型:
二、初始化方法:
三、随用随定义:
4-2 c++的输入输出方式
4-3 c++新特性以及输入输出演示
#include<iostream>
#include<stdlib.h>
using namespace std;
//要求:提示用户输入一个整数,将整数分别以8进制、10进制、16进制打印在屏幕上
//要求:提示用户输入一个布尔值(0或1),以布尔方式将值打印在屏幕上
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");
}
按F5执行
4-4 c++命名空间(namespace)
命名空间的名字是不可以重复的
演示:
#include<iostream>
using namespace std;
std是iostream库中的命名空间,里面包含cin cout endl 等;
如果只#include<iostream>
而不using namespace std
则会报错;
同名变量下的引用:
#include<iostream>
#include<stdlib.h>
using namespace std;
namespace A
{
int x = 0;
void fun()
{
cout<<"A"<<endl;
}
}
namespace B
{
int x = 1;
void fun()
{
cout<<"B"<<endl;
}
}
int main()
{
cout<<A::x<<endl;
B::fun();
system("pause");
}
如果B中有个函数A中没有,比如B有fun2,main函数调用的时候还是得加B::fun2(),如果不加B::则会报错;
扫描二维码关注公众号,回复:
9368933 查看本文章
另外一种解决办法:
在main函数前
using namespace B;
int main()
{
......
}
这样默认命名空间是B的,调用跟A重名的函数也不用加:
cout<<A::x<<endl;
fun();
fun2();
也可以不加using namespace std;
而在每个cin cout endl
前加std::
4-5 章节练习
定义一个命名空间为myNum,在该命名空间中定义一个整型变量x,并给该变量赋值为105;使用C++新特性判断myNum命名空间下的变量是奇数还是偶数。
#include <iostream>
#include <stdlib.h>
using namespace std;
namespace myNum //填写命名空间的关键字
{
int x = 105;
}
int main()
{
// 使用bool类型定义isOdd,作为状态位
bool isFlag = false;
if(myNum::x % 2 == 0)
{
//改变状态位的值,使其为false
isFlag = false;
}
else
{
//改变状态位的值,使其为true
isFlag = true;
}
// 判断状态位的值
if(isFlag)
{
// 如果状态位的值为true,则打印变量x是奇数
cout<<"变量x是奇数"<<endl;
}
else
{
// 如果状态位的值为false,则打印变量x是偶数
cout<<"变量x是偶数"<<endl;
}
return 0;
}
输出结果:
变量x是奇数
4-6 综合练习
使用一个函数找出一个整型数组中的最大值或最小值
#include<iostream>
#include<stdlib.h>
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 n=5;
int array[5];
for(int i=0;i<n;i++)
{
cin>>array[i];
}
cout<<CompA::getMaxorMin(array,n,0)<<endl;
system("pause");
return 0;
}