c++-C++中对调用重载函明确

问题描述

C++中对调用重载函明确

#include
using namespace std;
#include"math.h"
void main()
{
long int i,x,y;
for(i=1;i
{x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
cout
}
}
错误提示:件vs2010visual studio 2010projectsvsmacros80samples平方数平方数main.cpp(8): error C2668: “sqrt”: 对重载函数的调用不明确
1> e:常用软件vs2010vcincludemath.h(589): 可能是“long double sqrt(long double)”
1> e:常用软件vs2010vcincludemath.h(541): 或 “float sqrt(float)”
1> e:常用软件vs2010vcincludemath.h(127): 或 “double sqrt(double)”
1> 尝试匹配参数列表“(long)”时
1>e:常用软件vs2010visual studio 2010projectsvsmacros80samples平方数平方数main.cpp(9): error C2668: “sqrt”: 对重载函数的调用不明确
1> e:常用软件vs2010vcincludemath.h(589): 可能是“long double sqrt(long double)”
1> e:常用软件vs2010vcincludemath.h(541): 或 “float sqrt(float)”
1> e:常用软件vs2010vcincludemath.h(127): 或 “double sqrt(double)”
1> 尝试匹配参数列表“(long)”时

解决方案

用long float或者double,如果是别的类型,先强制类型转换到这三种类型之一。long int不支持。

解决方案二:

试着写成:
x=sqrt(i+100.0);
y=sqrt(i+268.0);
是不是参数本来要 float 或 double,而你给的却是 int 型。

解决方案三:

long int i,x,y;这里不要这么使用吧。
就使用long i,x,y;

解决方案四:

long int i,x,y;这里不要这么使用吧。
就使用long i,x,y;

解决方案五:

有类型不匹配。sqrt原型是:
double sqrt(double);
而你传入了long,显然不匹配,因此报错。

时间: 2024-10-25 05:47:18

c++-C++中对调用重载函明确的相关文章

深度探究C++中的函数重载的用法_C 语言

C++ 允许同一范围内具有相同名称的多个函数的规范.这些函数称为重载函数,"重载"中对其进行了详细介绍.利用重载函数,程序员可以根据参数的类型和数量为函数提供不同的语义. 例如,采用字符串(或 char *)参数的 print 函数执行的任务与采用"双精度"类型的参数的函数执行的任务截然不同.重载允许通用命名并使程序员无需创建名称,例如 print_sz 或 print_d.下表显示了 C++ 使用函数声明的哪些部分来区分同一范围内具有相同名称的函数组.重载注意事项

怎样很好的将java中的构造重载学好(初学者)

问题描述 怎样很好的将java中的构造重载学好(初学者) 现在初学,但是在写代码的时候总是无法使用构造重载这种方法,并且在写代码的时候老是思绪混乱应该怎莫办??????? 解决方案 java允许在一个类中,多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载,编译器会根据实际情况挑选出正确的方法,如果编译器找不到匹配的参数或者找出多个可能的匹配就会产生编译时错误,这个过程被称为重载的解析 1 普通方法的重载 普通方法的重载是Java实现多态技术的重要手段,为编程带来了很多便利

在OnPaint中必须调用一次BeginPaint和EndPaint,且也只能调用一次。(上) .

基于对话框的程序(mfc默认生成),重载OnEraseBkgnd函数,其它不动,若在OnPaint函数中不调用其基类的OnPaint函数,即注释掉CDialog::OnPaint();,代码如下: [cpp] view plaincopyprint? void CDDDDlg::OnPaint()   {       if (IsIconic())       {           CPaintDC dc(this); // device context for painting      

java中this调用构造方法后面为什么不可以放已经定义好的变量

问题描述 java中this调用构造方法后面为什么不可以放已经定义好的变量 public class D{ public static void main(String[] args){ A c=new A(); c.print(); } } class A{ int a=1; int b=2; A(){ this(a,b); } A(int a,int b){ this.a=a; this.b=b; } void print(){ System.out.println(a+","+b

C++第8周(春)项目1 实现复数类中的运算符重载

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目1]实现复数类中的运算符重载(1)请用类的成员函数,定义复数类重载运算符+.-.*./,使之能用于复数的加减乘除 class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;} Complex operator+(C

第8周-任务2-实现Time类中的运算符重载

[题目]实现Time类中的运算符重载 下面是给出的参考代码 #include <iostream> using namespace std; class CTime { private: unsigned short int hour; // 时 unsigned short int minute; // 分 unsigned short int second; // 秒 public: CTime(int h=0,int m=0,int s=0); void setTime(int h,in

jsp-JSP中编写JS代码过程中,调用了一个JSP表达式,发现一个问题,麻烦各位大神解答

问题描述 JSP中编写JS代码过程中,调用了一个JSP表达式,发现一个问题,麻烦各位大神解答 背景: 楼主使用Myelipse新建了一个Web项目,在编写一个JSP文件的时候遇到一个问题,首先是使用了img,并且写了一个事件,代码如下: <imgclass="poke" src="poke/back.jpg" title="hit" id="play_id_3" onClick="change_pic()&qu

swift 中怎么调用其他类的协议

问题描述 swift 中怎么调用其他类的协议 比如我创建了一个协议protocol 一个类 我想在这个类引用这个协议请问怎么实现? 感激不尽! 解决方案 朋友的需求有点模糊,举个protpcol的例子给朋友吧 创建协议: 遵循协议: 在实现协议的类中实现协议方法

ios-IOS中如何调用Rootviewcontroller?

问题描述 IOS中如何调用Rootviewcontroller? 我希望在ios应用中能实现查看用户是注册用户还是新用户,如果还没注册的用户,就会转到注册页面.代码如下: if (user != register){ RegisterViewController *registerViewController = [[RegisterViewController alloc] init]; RearViewController *rearViewController = [[RearViewCo