Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未解析的外部符号调用函数_C++ - Fatal编程技术网

C++ 未解析的外部符号调用函数

C++ 未解析的外部符号调用函数,c++,C++,我正在处理一个类的赋值,所以这只是代码的一部分,但每当我试图编译它时,就会出现这个错误 1>pass9.obj : error LNK2019: unresolved external symbol "void __cdecl bestbuy(double,double,double)" (?bestbuy@@YAXNNN@Z) referenced in function _main 1>C:\Users\YoggieBear\Desktop\school\pass9\Debug\

我正在处理一个类的赋值,所以这只是代码的一部分,但每当我试图编译它时,就会出现这个错误

1>pass9.obj : error LNK2019: unresolved external symbol "void __cdecl bestbuy(double,double,double)" (?bestbuy@@YAXNNN@Z) referenced in function _main
1>C:\Users\YoggieBear\Desktop\school\pass9\Debug\pass9.exe : fatal error LNK1120: 1 unresolved externals
代码如下

#include <iostream>
using namespace std;

void bestbuy(double, double, double);
void discountresults (double, double);
void howmany(double, double);

int price1, price2, price3;

int main ()
{

cout<<"Please enter 3 prices.\n";//This tests function bestbuy.
cin>>price1>>price2>>price3; 
bestbuy(price1,price2,price3);
cout<<"Your lowest price entered was "<<price1<<" and it was the "<<price2<<" number you entered.\n";


system ("PAUSE");
return 0;
}

void bestbuy(double &val1,double &val2, double val3)
{
if (val1 < val2 && val1 < val3)
val2 = 1;
else if (val2 < val1 && val2 < val3)
    {val1 = val2;
     val2 = 2;}
else
   {val1 = val3;
    val2 = 3;}
}
#包括
使用名称空间std;
作废百思买(双倍,双倍,双倍);
无效折扣结果(双倍,双倍);
无效数量(双倍,双倍);
int价格1、价格2、价格3;
int main()
{
coutprice1>>价格2>>价格3;
百思买(价格1、价格2、价格3);

您的远期申报是

void bestbuy(double, double, double);
你试图定义的是

void bestbuy(double &val1,double &val2, double val3)

它们显然引用了两个不同的函数。两个签名必须匹配,要么删除引用,要么将它们添加到转发声明中。您现在要做的是转发声明一个函数,并为未定义的函数定义重载。

您将函数声明为接受值,但定义它作为引用。将声明更改为
void bestbuy(double&,double&,double);

您的函数声明与您的函数定义不匹配

更新如下:

void bestbuy(double&, double&, double);

谢谢你,我没有意识到功能原型必须有&s