Soy bastante nuevo en C ++, no estoy seguro de cómo corregir el error. Esto es parte de mi código, el error aparece en mi función principal.

#include <iostream>
using namespace std;

// Function declaration
void gallons(int wall);
void hours(int gallons);
void costPaint(int gallons, int pricePaint);
void laborCharges(int hours);
void totalCost(int costPaint, int laborCharges);

 // Function definition
 void gallons(int wall)
 {
   int gallons;

   gallons = wall / 112;

   cout << "Number of gallons of paint required: " << gallons << endl;

    }

  // Function definition
  void hours(int gallons)
  {
    int hours;

    hours = gallons * 8;

    cout << "Hours of labor required: " << hours << endl;


  }

  // Function definition
  void costPaint(int gallons, int pricePaint)
  {
    int costPaint;

    costPaint = gallons * pricePaint;

    cout << "The cost of paint: " << costPaint << endl;
  }

  // Function definition
     void laborCharges(int hours)
  {
    int laborCharges;

    laborCharges = hours * 35;

     cout << "The labor charge: " << laborCharges << endl;
   }

  // Funtion definition
  void totalCost(int costPaint, int laborCharges)
   {
      int totalCost;

      totalCost = costPaint + laborCharges;

      cout << "The total cost of the job: " << totalCost << endl;
    }

    // The main method
    int main()
    {
    int wall;
    int pricePaint;

    cout << "Enter square feet of wall: ";
    cin >> wall;

    cout << "Enter price of paint per gallon: ";
    cin >> pricePaint;

    gallons(wall);

    hours(gallons); // here's where the error is

    costPaint(gallons, pricePaint); // here's where the error is

    laborCharges(hours); // here's where the error is 

    return 0;

        }

Aquí es donde sigo recibiendo el error "C ++ argumento de tipo" void (*) (int wall) es incompatible con el parámetro de tipo "int" "Lo obtengo por horas, costPaint y cargos por mano de obra. Si puedo averiguar cómo arreglar el primero Puedo arreglar los tres ya que es esencialmente el mismo problema.

0
hcas 3 oct. 2019 a las 02:55

1 respuesta

La mejor respuesta
#include <iostream>

using namespace std;

void hours(int gallons);

int gallons(int wall) 
{
    return wall * wall;
}

void hours(int gallons)

{
    int hours;

    hours = gallons * 8;

    cout << "Hours of labor required: " << hours << endl;
}

int main()
{
    int wall;
    int pricePaint;

    cout << "Enter square feet of wall: ";
    cin >> wall;

    cout << "Enter price of paint per gallon: ";
    cin >> pricePaint;

    hours(gallons(wall));

    return 0;

}

Es posible que desee este tipo de código.

En su código, 'galones' en la función principal se trata como una función porque 'galones' es un nombre de función.

Pero, no desea utilizar una función como argumento, sino el valor de retorno de una función.

Así que solo necesitas arreglar el código como el anterior.

1
Gyubong Lee 3 oct. 2019 a las 01:11