C++基础概念及其使用方法
基础概念及其语法使用
1、函数重载。
2,用const来定义常变量。
3、带默认参数的函数
1、函数重载
打个比方:大家都应该记得,在前面的C++中所说的插入运算符"<<“和提取运算符”>>",这两个运算符本来就是C语言和C++位运算中的“左移运算符”和“右移运算符”,而现在C++又把他作为输入和输出运算符,这就叫对运算符的“重载”,也就是“一物多用”。就比如说水不仅可以喝还能用来洗脸,他只是在不同场合有不同的意义和作用,上面的运算符也是如此。重载的类型很多不进能重载运算符还能重载函数呢,那我们即将进入我们所学习“函数重载”:
在这里的学习对C++的呢我们依旧与C语言做对比,首先,C语言规定在同一作用域中,不能出现同名函数,但在C++中是允许在同一作用域中可以用一个函数名来定义多个函数。这些同名函数用来实现不同的功能,即函数重载,也就是一个函数名多用。
我们讲解完相关知识那就直接进入实战吧!
在这里给大家补充一下一个重点:在对函数重载时需要注意,函数的参数个数和参数类型不能完全相同,意思就是两者可以都不相同,但不能都相同,不然程序会将报错,大家注意一下。
求出两个数的最大值(分别用整型,浮点型,长整型)
#include <iostream>
using namespace std;
int max(int a,int b)
{if(a>b) //用if语句比较大小
return(a); //返回当前最大值
else
return(b);
}
float max(float a,float b)
{
return(a>b?a:b); //用双目运算符比较大小,与上面比较大小一样
}
long max(long a,long b)
{
return(a>b?a:b);
}
int main()
{cout<<"请输入相关数据"<<endl;
int a,b,c;
cin>>a>>b;
float s,d,f;
cin>>s>>d;
long z,x,v;
cin>>z>>x;
c=max(a,b);
v=max(z,x);
f=max(s,d);
cout<<"整数max="<<c<<endl;
cout<<"单精度浮点型max="<<f<<endl;
cout<<"长型max="<<v<<endl;
return 0;
}
代码呢已经为大家敲好了,大家可以自己去敲敲看,这是我运行的结果大家请看:
以上呢就是对函数重载的讲解,大家如果有啥疑问可以再评论提问。
2、用const定义常变量。
在这里先给大家穿插个知识点就是在C语言中用来定义符号常量的"#define"指令,该指令是用来把程序中被定义成符号常量符号全换为他在预处理指令所附的值,这样说大家可能有点不理解。
For example(例如):
#define PI 3.14
也就是说把程序中的字符串"PI"全换为3.14,在编译后就不在有PI这个字符串。那为什么不一直用"#define"指令呢?
大家记一下他与我们所要学习的定义常变量const的不同;首先"#define"指令不是变量,没有类型,也不用占用存储单元,而我们今天所学习的常变量const它具有变量属性,有数据类型,占用存储单元,自然也就有地址,所以在后面的学习中会学习与指针使用。那他两就只有这点不同?还是说还有不同点,我给大家敲个代码运行给大家对比一下:
#include <iostream>
using namespace std;
#define PI 3.14
int a=2.0,b=3.0;
#define R (a+b)
int main()
{float c;
c=PI*R*R;
cout<<c<<endl;
return 0;
}
大家呢可以下去敲了试试看,代码结果呢我就给大家放在下面了:
那我问问大家这个结果对不对,你们可以自己算一下(这里停顿2分钟),
不出意外的话,
意外出现了,显而易见,答案是错误的,那他错那里了呢?我给大家看看我的另一个代码截图:
大家算出来是不是这个答案呢,后面的78.5是对的,大家细心的观察会发现,第一张代码截图和第二张代码截图在第五行代码一个没有括号,另一个有括号的,综上所述得出一个结论:#define指令并不会遵循运算法则,但他也是可以使用的只是大家在运用时需要注意带括号的问题,所以#define指令被const取代;那我们接下来看看用const怎么表达:
#include <iostream>
using namespace std;
const float PI=3.14;
const int a=2,b=3;
const int R=a+b;
int main()
{float c;
c=PI*R*R;
cout<<c<<endl;
return 0;
}
运行结果呢在下面了,大家可以去敲一下;
在以后的学习中大家有什么不懂的可以问我哈,到这里呢我们本节的学习就结束了,感谢大家的支持与陪伴,谢谢大家。