2017-10-15 158 views
-3

ユーザーが指定した測定値を使用して四角形の面積を計算するプログラムがあります。私は特定の理由でこれを行うには、クラスを使用していますが、私のコンパイラは、2つのエラー...エラー:「式にはクラス型が必要です」&「クラス/構造体/共用体が必要です」

  • expression must have class type
  • left of '.getArea' must have class/struct/union

私はこれをどのように修正すればよいが発生しますか?

Rectangle.h

class Rectangle 
{ 
private: 
    int length; 
    int width; 
    int area = length * width; 

public: 
    Rectangle(int l, int w); 
    int getLength(); 
    void setLength(int l); 
    int getWidth(); 
    void setWidth(int w); 
    int getArea(); 
    void setArea(int a); 
}; 

Rectangle.cpp

Rectangle::Rectangle(int l, int w) 
{ 
    length = l; 
    width = w; 
} 
--some code-- 
int Rectangle::getArea() 
{ 
    return area; 
} 
void Rectangle::setArea(int a) 
{ 
    area = a; 
} 

Area.cpp

int i, lth, wth; 

for (i = 0; i < 3; i++) 
{ 
    cout << "Enter your measurements, length first" << endl; 
    cin >> lth >> wth; 
    Rectangle rMeasure(int lth, int wth); 
    cout << "Area of this rectangle is: " << rMeasure.getArea(); //problem code 
} 
+1

'int型の面積=長さ*幅;'それはそれはどのように動作するかではありません。 – user0042

+0

'Rectangle rMeasure(int lth、int wth);'は関数宣言です。 – Mat

答えて

1

この

Rectangle rMeasure(int lth, int wth); 

は関数宣言です。

は、あなたのコード内で

Rectangle rMeasure(lth, wth); 
0

いくつかの変更を意味する必要になると思われる

1.

private: 
    int length; 
    int width; 
    int area; 

2.

Rectangle::Rectangle(int l, int w) 
{ 
    length = l; 
    width = w; 
    this->area=length * width; 
} 

3.

for (i = 0; i < 3; i++) 
{ 
    cout << "Enter your measurements, length first" << endl; 
    cin >> lth >> wth; 
    Rectangle rMeasure(lth, wth); 
    cout << "Area of this rectangle is: " << rMeasure.getArea(); 
} 

Demo

関連する問題