0
votes

C ++ MisMatch fonction à appeler

Puis-je savoir ce qui ne va pas avec les codes? xxx

après exécution, je reçois cette erreur

Erreur: Aucune fonction de correspondance pour appeler 'Véhicule :: SETPRICE ()' |


5 commentaires

SetPrice nécessite une valeur fournie. VOI VOIPRICE (** Double P **) Notez qu'il renvoie également vide . Vous ne pouvez pas envoyer void à cout . Voulez-vous avoir une méthode getprice ?


Puis-je savoir ce qui ne va pas avec les codes? - C'est illisible car il n'est pas correctement indenté?


@Swordfish mieux?


@ user4581301 oui, maintenant c'est mieux.


Je ne m'attendrais pas à Véhicule :: Comparez-les () Pour demander une entrée utilisateur. Ce devrait être une fonction libre. Lorsque c'est membre, je m'attendrais à ce qu'il comparait le prix d'une voiture fournie comme argument au prix de la voiture que la fonction est appelée.


4 Réponses :


0
votes
cout << "Used car price is $" << usedCar.setPrice();
this line makes errorsreturn type of setPrice() is voidyou should make things like Vehicle::getPrice() to get value of Price.

1 commentaires

Bien que ce soit un bogue dans le code, ce n'est pas l'erreur de poser une erreur.



0
votes

SetPrice prend un double comme paramètre mais vous l'avez appelé sans paramètre xxx

de sorte que la signature de fonction ne correspond pas.


0 commentaires

2
votes

Je vois quelques points faux:

#include <iostream>

class Vehicle
{
private:
    double price = 0;
public:
    double getPrice() const
    {
        return price;
    }

    void setPrice(double p)
    {
        price = p;
    }

    double comparePrices(const Vehicle&);
};

double Vehicle::comparePrices(const Vehicle& other)
{
    return price - other.price;
}

int main()
{
    Vehicle newCar, usedCar;
    double price, diff;

    newCar.setPrice(38000);

    std::cout << "Enter the price for the used car: ";
    std::cin >> price;
    usedCar.setPrice(price);

    diff = newCar.comparePrices(usedCar);
    std::cout << "Used car price is $" << usedCar.getPrice();
    std::cout << ", the difference is $" << diff << std::endl;

    return 0;
}


0 commentaires

0
votes

COUT << "Prix de la voiture d'occasion est $" << UsedCar.Seprice ();

Au lieu de cela, ajoutez simplement une méthode Accessor GETPRICE () cela vient de retourner le prix de la voiture. Cela devrait fonctionner alors. SetPrice () nécessite un paramètre à transmettre, mais vous ne leur donnez rien quand vous le coutez.


0 commentaires