2015-10-20 2 views
-3

Я написал эту программу, но она не работает. Он дает ошибку, что x и y не были объявлены и ожидаются первичное выражение перед int on line 17.классы C++ не работают для меня

#include<iostream> 
using namespace std; 

class shapes 
{ 
    int width, height; 
public: 
    int getvalue(); 
    void decideshape(int l, int b); 
}; 

main() 
{ 
    cout<<"to find what type of shape you have input the measurements"<<endl; 
    shapes toy; 
    toy.getvalue(); 
    toy.decideshape(); 
} 

int shapes::getvalue() 
{ 
    int l, b; 
    cout<<"length = "; 
    cin>>l; 
    cout<<"breath = "; 
    cin>>b; 
} 

void shapes::decideshape(x, y) 
{ 
    if(x==y) 
     cout<<"This is square"<<endl; 
    else 
     cout<<"This is rectangle"<<endl; 
} 

, как я должен вернуть 2 значения из функции GetValue

+0

Также можно определить тип возвращаемого значения для 'GetValue()', так что вы должны возвращать целое число, даже если это is 'return 0;' –

ответ

4
  1. Аргументы обязаны иметь типы в C++. Напишите свое определение shapes::decideshape в

    void shapes::decideshape(int x, int y) 
    
  2. Вы не возвращают значение из shapes::getvalue.

  3. Вы передаете слишком мало (фактически нет) параметров до shapes::decideshape. Ожидается, что будут поставлены два int с.

  4. Вы должны сообщить компилятору, что функция возвращает явно. Добавьте возвращаемое значение int в main.

+0

Спасибо, что он сработал, я назвал decideshapes внутри getvalue. – Dementor

+0

Как мне вернуть 2 значения из функции getvalue – Dementor

+0

@Dementor того же типа? Какие обстоятельства? Если у вас есть другой вопрос, спросите другого в отдельной теме. Кроме того, сначала покажите ** свой ** подход. Мы поможем вам, если это не сработает. – Downvoter

0

Вы пропускаете тип x и y в списке параметров:

void shapes::decideshape(int x, int y)