Аргумент C ++ типа "void (*) (int wall) несовместим с параметром типа" int " - PullRequest
0 голосов
/ 03 октября 2019

Я довольно новичок в C ++, я не уверен, как исправить ошибку. Это часть моего кода, ошибка появляется в моей основной функции.

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

        }

Здесь я получаю сообщение об ошибке «Аргумент типа C ++» void (*) (int wall) несовместим с параметромтипа "int" "Я получаю часы, costPaint и оплату труда. Если я могу понять, как исправить первое, я могу исправить все три, так как это по сути одна и та же проблема.

1 Ответ

1 голос
/ 03 октября 2019
#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;

}

Возможно, вам понадобится код такого типа.

В вашем коде галлоны в основной функции рассматриваются как функция, поскольку галлоны - это имя функции.

Но вы не хотите использовать функцию в качестве аргумента, а скорее возвращаемое значение функции.

Так что вам просто нужно исправить код, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...