目的
(1) 熟悉基本的输入输出方法;
(2) 掌握内联函数,带默认形参的函数,重载函数;
(3) 理解命名空间的概念,掌握命名空间的使用;
(4) 熟悉const关键字的使用;
(5) 掌握内存的动态分配的概念和使用方法;
(6) 熟悉编译预处理命令;
(1)编写重载函数max1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。
#include<bits\stdc++.h>
using namespace std;
//求取2个整数的最大值
void MAX_i2(int x,int y)
{
int a=x>y?x:y;
cout<<a<<endl;
}
//求取3个整数的最大值
void MAX_i3(int x,int y,int z)
{
int a=x>y?x:y;
int b=a>z?a:z;
cout<<b<<endl;
}
//求取2个双精度数的最大值
void MAX_d2(double x,double y)
{
double a=x>y?x:y;
cout<<a<<endl;
}
//求取3个双精度数的最大值
void MAX_d3(double x,double y,double z)
{
double a=x>y?x:y;
double b=a>z?a:z;
cout<<b<<endl;
}
int main()
{
MAX_i2(3,4);
MAX_i3(3,4,5);
MAX_d2(3.123,3.9087);
MAX_d3(3.16789,4.908,2.189);
system("pause");
return 0;
}
(2)用new操作为一个包含10个整数的数组分配内存,输入若干个值到数组中,分别统计其中正数和负数的个数后再用delete操作释放内存。
#include<bits\stdc++.h>
using namespace std;
int main()
{
int *p;
p=new int[10];
int count_min=0;
int count_pos=0;
if(!p)
{
cout<<"allocation fauilure"<<endl;
return 0;
}
for(int i=0;i<10;i++)
{
cin>>p[i];
if(p[i]<0)
{
count_min++;
}
if(p[i]>0)
{
count_pos++;
}
}
cout<<"正数的个数:"<<count_pos<<endl;
cout<<"负数的个数:"<<count_min<<endl;
delete []p;
system("pause");
return 0;
}
注意
- 注意new与delete的搭配使用;new其实就是告诉计算机开辟一段新的空间,但是和一般的声明不同的是,new开辟的空间在堆上,而一般声明的变量存放在栈上。通常来说,当在局部函数中new出一段新的空间,该段空间在局部函数调用结束后仍然能够使用,可以用来向主函数传递参数。另外需要注意的是,new的使用格式,new出来的是一段空间的首地址。所以一般需要用指针来存放这段地址。
- 重载函数可以通过参数个数的不同来区别,同样也可以通过参数类型的不同来区别;运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的C++多态。目的在于让人能够用同名的函数来完成不同的基本操作。要重载运算符,需要使用被称为运算符函数的特殊函数形式。
3.注意,用delete删除数组时,需要加中括号,以及位置;