ошибка объявления функции, "ожидаемый конструктор, деструктор или преобразование типа перед ';'лексема» - PullRequest
1 голос
/ 21 апреля 2011

Я получаю сообщение об ошибке в строке 4:

expected constructor, destructor, or type conversion before ';' token

Я довольно слаб в этом вопросе, когда дело касается функций, поэтому я знаю, что что-то не так с моим объявлением функции (?). У кого-нибудь есть предложения? Заранее спасибо ...

#include <iostream>

using namespace std;
shapeDetermine (char letter);

int main()
{ 
    char letter;
    int  side, area, base, height; // lengths to be used in calculating area

    cout << "Enter the first letter of the shape:"; 
    cin>> letter;
    system ("pause");
    return 0;
}

Добавлено:

void shapeDetermine (char shape)            
{
    int  side, area, base, height; // lengths to be used in calculating area
    if (letter == 's')              //determine what shape is used - square
    {
           cout<< " Enter the length of side of square:";
           cin>> side;
           area = side * side;    // formula for area of square
           cout<< " The area of the square is "<< area<< " cm."<<endl;
    }
    else if (letter =='t')        // triangle
    { 
        cout<< " Enter the height of triangle:";
        cin>> height;
        cout<< " Enter length of base of triangle:"<< endl;
        cin>> base;
        area = (base * height) / 2;   // formula for area of triangle
        cout<< " The area of the triangle is "<< area<< " cm."<<endl;
    }
    else
    {
        cout<<" Invalid shape entered."<< endl;  // for any character other than s||t
    }
}

Ответы [ 3 ]

4 голосов
/ 21 апреля 2011

Вы не объявляете тип возврата для shapeDetermine.Если, например, предполагается, что он должен вернуть int, он должен быть объявлен:

int shapeDetermine(char letter);

Обновление , чтобы ответить на новый код, который ОП опубликовал:Код в порядке.Однако, если он появляется после main() в файле (или в другом файле), вам все равно нужно объявить прототип функции для него перед вызовом.Учитывая опубликованное вами определение функции, прототип будет иметь следующий вид:

void shapeDetermine(char shape);

Еще одно обновление для учета комментариев:

Вам необходимо вызвать функцию.В вашем исходном коде для main() вы нигде не звоните shapeDetermine().Попробуйте изменить main() следующим образом:

cout << "Enter the first letter of the shape:"; 
cin>> letter;
shapeDetermine(letter);
system ("pause");
0 голосов
/ 21 апреля 2011

Пока я вижу, что вы объявили функцию shapeDetermine, но в ее объявлении вы не указали тип возвращаемого значения. Я думаю, что вы должны указать один, даже если это недействительно.

0 голосов
/ 21 апреля 2011

вам нужно определить возвращаемое значение вашей функции (void?)

...