C++ Error:明显调用的表达式前的括号必须具有(指针)函数类型

#include <iostream>
using namespace std; 

class Shape
{
protected:
    int w, h;
public:
    Shape(int w=0, int h=0):w(w), h(h){}
}; 

class Rectangle:public Shape
{
public:
    int h,w;
    double area;
    Rectangle(int n,int m){
        h=n;
        w=m;
    }
    double GetArea(){
        area=h*w;
    return area;
    }
};

class Triangle:public Shape
{
public:
    int h,w;
    double area;
    Triangle(int n,int m){
        h=n;
        w=m;
    }
    double GetArea(){
    area=(h*w)/2;
    return area;
    }
};


int main()
{
    int w, h;
    cin >> w >> h;
    Rectangle a(w , h);
    cout << a.area() << endl;
    cin >> w >> h;
    Triangle b(w, h);
    cout << b.area() << endl;
    return 0;
}

 

main函数中出现编译错误,请教大神,如何更改?

可以调用函数GetArea()

#include <iostream>
using namespace std; 

class Shape
{
protected:
    int w, h;
public:
    Shape(int w=0, int h=0):w(w), h(h){}
}; 

class Rectangle:public Shape
{
public:
    int h,w;
    double area;
    Rectangle(int n,int m){
        h=n;
        w=m;
    }
    double GetArea(){
        area=h*w;
    return area;
    }
};

class Triangle:public Shape
{
public:
    int h,w;
    double area;
    Triangle(int n,int m){
        h=n;
        w=m;
    }
    double GetArea(){
    area=(h*w)/2;
    return area;
    }
};


int main()
{
    int w, h;
    cout << "Please enter width and length of a rectangle: ";
    cin >> w >> h;
    Rectangle a(w , h);
    cout << "The area of the rectagle is: ";
    cout << a.GetArea() << endl;
    
    cout << "Please enter the side and height of a triangle: ";
    cin >> w >> h;
    Triangle b(w, h);
    cout << "The area of the triangle is: ";
    cout << b.GetArea()<< endl;
    return 0;
}


// Output:
lease enter width and length of a rectangle: 4 5                                                                                                      
The area of the rectagle is: 20                                                                                                                        
Please enter the side and height of a triangle: 4 8                                                                                                    
The area of the triangle is: 16 
 

 

area是类成员公开变量,调用不需要加括号,直接cout << a.area << endl;即可

如果解决你的问题,麻烦点个采纳吧!

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632