C/C++编程笔记:C++中的函数重载和浮动

Posted 一起学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++编程笔记:C++中的函数重载和浮动相关的知识,希望对你有一定的参考价值。

尽管多态性在C ++中是一种广泛使用的现象,但有时可能会非常复杂。例如,考虑以下代码片段:

#include<iostream>

using namespace std;

void test(float s,float t)

{

cout << "Function with float called ";

}

void test(int s, int t)

{

cout << "Function with int called ";

}

int main()

{

test(3.5, 5.6);

return 0;

}

似乎对main()中的函数test的调用将导致输出“调用了float的函数”,但是代码给出了以下错误:

在函数'int main()'中:13:13:错误:重载的“ test(double,double)”的调用不明确 测试(3.5,5.6);

在函数重载中,众所周知,编译器决定在重载函数中需要调用哪个函数。如果编译器无法在两个或多个重载函数中选择一个函数,则情况为-“函数重载中的歧义”。

上面代码中含糊不清的原因在于,浮动字面量3.55.6实际上被编译器视为double。按照C ++标准,浮点文本(编译时间常数)作为双面处理除非由后缀明确指定。由于编译器无法找到带有double参数的函数,因此如果将值从double转换为int或float会感到困惑。

纠正错误:通过提供后缀f,我们可以简单地告诉编译器文字是浮点型的,而不是双精度型。

看下面的代码:

#include<iostream>

using namespace std;

void test(float s,float t)

{

cout << "Function with float called ";

}

void test(int s,int t)

{

cout << "Function with int called ";

}

int main()

{

test(3.5f, 5.6f); // Added suffix "f" to both values to

// tell compiler, it's a float value

return 0;

}

输出:

带有浮点数的函数

以上就是今天的全部内容了。每日分享小知识,希望对你有帮助~

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

C语言C++编程学习交流圈子,QQ群:765803539点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习视频分享:

 

以上是关于C/C++编程笔记:C++中的函数重载和浮动的主要内容,如果未能解决你的问题,请参考以下文章

C/C++编程笔记:无法在C++中重载的函数,六种方式

C/C++编程笔记:C++中的运算符重载

C/C++编程笔记:C++多态性知识详解

C/C++编程笔记:函数重载和const关键字

C/C++编程笔记:重载可以与继承一起使用吗?

C++笔记--面向对象(OOP)编程基础--操作符重载及友元