2011-11-04 3 views
0

Je travaille sur une affectation pour la classe, ce n'est qu'une partie du code, mais chaque fois que j'essaie de la compiler, j'obtiens cette erreur.Fonction d'appel de symbole externe non résolue

1>pass9.obj : error LNK2019: unresolved external symbol "void __cdecl bestbuy(double,double,double)" ([email protected]@[email protected]) referenced in function _main 
1>C:\Users\YoggieBear\Desktop\school\pass9\Debug\pass9.exe : fatal error LNK1120: 1 unresolved externals 

code est ci-dessous

#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;} 
} 

Répondre

0

Votre déclaration de fonction ne correspond pas à la définition de votre fonction.

mise à jour comme ci-dessous:

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

Merci, je ne savais pas que le prototype de fonction devait avoir et s – sircrisp

0

Votre déclaration anticipée est

void bestbuy(double, double, double); 

Et votre tentative de définition est

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

Ils sont clairement référence à deux fonctions différentes. Les deux signatures doivent correspondre, soit supprimer les références, soit les ajouter à la déclaration forward. Ce que vous faites en ce moment est de déclarer une fonction et de définir une surcharge pour cette fonction non définie.

0

Vous déclarez la fonction comme prenant des valeurs, mais définissez-la comme prenant des références. Changez la déclaration en void bestbuy(double&, double&, double);.

Questions connexes