C++ C++;第16、17和18行未声明的标识符

C++ C++;第16、17和18行未声明的标识符,c++,class,C++,Class,我正在尝试调用三角形方法,但是我似乎基本上做得不对。在第16行,我有3个错误: 三角形:未声明的标识符,语法错误缺少“;”之前 标识符“newTriangle”和newTriangle未声明的标识符 第17行显示newTriangle未声明标识符,第18行显示newTriangle未声明标识符 我不确定我做错了什么或漏掉了什么 我的代码: #include <iostream> #include <cmath> using namespace std; //Base

我正在尝试调用三角形方法,但是我似乎基本上做得不对。在第16行,我有3个错误:

三角形:未声明的标识符,语法错误缺少“;”之前 标识符“newTriangle”和newTriangle未声明的标识符

第17行显示newTriangle未声明标识符,第18行显示newTriangle未声明标识符

我不确定我做错了什么或漏掉了什么

我的代码:

#include <iostream>
#include <cmath>

using namespace std;

//Base Class (Abstract/Interface)
class Interface{

public:
    virtual int area() = 0;
    virtual int perimeter() = 0;
};

int main() {
    Triangle newTriangle;
     newTriangle.area();
     newTriangle.perimeter();
};

//Triangle
class Triangle : public Interface {
    int s1 = 3;
    int s2 = 5;

public:
    int area() {
        double a = ((s1 * s2) * 1 / 2);
        cout << "The area of the triangle:";
        cout << a << endl;
    }
    int perimeter() {
        double b = (s1 + s2 + s2);
        cout << "The perimeter of the triangle is: ";
        cout << b << endl;
    }
};
#包括
#包括
使用名称空间std;
//基类(抽象/接口)
类接口{
公众:
虚拟整数区域()=0;
虚拟整数周长()=0;
};
int main(){
三角形三角形;
新三角形面积();
新三角形周长();
};
//三角
类三角形:公共接口{
int s1=3;
int s2=5;
公众:
内部区域(){
双a=((s1*s2)*1/2);

cout您可以这样编写代码:

#include <iostream>

#include <cmath>

using namespace std;


//Base Class (Abstract/Interface)

class Interface{

public:

    virtual void area() = 0;

    virtual void perimeter() = 0;

};
class Triangle : public Interface {
private:
int s1,s2;
public:
     void get(int a,int b)
     {
         s1=a;
         s2=b;
     }
    void area() {

        double a = ((s1 * s2) * 1 / 2);

        cout << "The area of the triangle:";

        cout << a << endl;
    }
    void perimeter() {
        double b = (s1 + s2 + s2);
        cout << "The perimeter of the triangle is: ";
        cout << b << endl;
    }
};




int main() {

    Triangle newTriangle;
    newTriangle.get(3,5);
     newTriangle.area();

     newTriangle.perimeter();

}
#包括
#包括
使用名称空间std;
//基类(抽象/接口)
类接口{
公众:
虚空面积()=0;
虚空周长()=0;
};
类三角形:公共接口{
私人:
int s1,s2;
公众:
void get(int a,int b)
{
s1=a;
s2=b;
}
空区(){
双a=((s1*s2)*1/2);

不能投票以打字错误结束,或者可能有重复:您必须在使用类之前声明类。只需将
Triangle
的定义移到
main
上您想使用“Triangle”的位置,编译器对它一无所知(因为它的代码还没有出现,)。将定义上移或向前声明。第一个也是最重要的错误是在声明类之前使用了该类,第二个错误出现在函数区域()和周长()中这是非空函数,但仍然没有返回任何有用的数据,这导致了无法达到的警告。我现在明白了!谢谢,我做到了。它工作了。我不太熟悉C++,我只是尝试把我的java程序转换成C++。所以我在这方面实现是新的。@韦斯利哈里森没有尝试转换java PR。将C++复制到有效的java和C++中,但在每个方面都有不同的含义,而没有实现。