C++ *令牌之前应为标识符

C++ *令牌之前应为标识符,c++,C++,正在尝试创建一个程序,使用构造函数计算三角形的面积。错误-错误:在*token triangleint b,int h:*_baseb,*_heighth{}之前应为标识符 我想这就是你想要做的: 包括 使用名称空间std; 阶级三角{ const int_基础,_高度; 公众: 三角形b,inth:_baseb,_heighth{} 双区; }; 双三角形:面积{ 返回0.5*_基准*_高度; } int main{ INTA,b; cin>>a>>b; 三角形ra,b; 这里可能有很多错误。

正在尝试创建一个程序,使用构造函数计算三角形的面积。错误-错误:在*token triangleint b,int h:*_baseb,*_heighth{}之前应为标识符


我想这就是你想要做的:

包括 使用名称空间std; 阶级三角{ const int_基础,_高度; 公众: 三角形b,inth:_baseb,_heighth{} 双区; }; 双三角形:面积{ 返回0.5*_基准*_高度; } int main{ INTA,b; cin>>a>>b; 三角形ra,b;
这里可能有很多错误。为什么要使用指向int的指针而不仅仅是整数?变量的名称是_height和_base,而不是*_height和*_base。它们不应该是指针。我不太清楚析构函数在这段代码中的作用。即使将它们更改为实际的变量名在你对双三角形::区域的定义中,你不需要写这个->\u base和这个->\u height,你可以分别使用_base和_height。真的。谢谢你指出这一点。
#include <iostream>

using namespace std;

class triangle {

    const int *_base, *_height;

public: triangle(int b, int h) : *_base(b) , *_height(h) { }

    ~triangle() {
        *_base , *_height;
    }
    double area();
};

double area ( int *_base, int *_height) {

return 0.5 * *_base * *_height;
}

int main() {
    int a, b;

    cin >> a >> b;
    triangle r(a, b);
    cout << r.area();

    return 0;
}