【问题标题】:How to get area of rectangle using class?如何使用类获取矩形的面积?
【发布时间】:2020-05-13 16:44:46
【问题描述】:

我的任务是使用类计算矩形的面积和周长。输入函数应该在类内。到目前为止,我编写了代码,但似乎有我无法检测到的错误。

我们将不胜感激。

矩形.h

#ifndef RECTANGLE_H
#define RECTANGLE_H
class Rectangle{
    public:
        int width, length;
        Rectangle();
        Rectangle(int width1,int length1);
        void getRectangle();
        int getArea();
        int getPerimeter();
};

#endif // RECTANGLE_H

矩形.cpp

// oporer ta class

#include<iostream>
#include "rectangle.h"
Rectangle::Rectangle()
{
    width=0;
    length=0;
}
Rectangle::Rectangle(int width1,int length1)
{
    width=width1;
    length=length1;
}
void Rectangle::getRectangle()
{
    cin>>width>>length;
}
int Rectangle::getArea()
{
    return (width*length);
}
int Rectangle::getPerimeter()
{
    return (width+length)*2
}
// oporer ta rectangle cpp 

main.cpp

#include <iostream>
#include "rectangle.h"
using namespace std;

int main()
{
    Rectangle paraFirst();
    paraFirst.getRectangle();
    return 0;
}
// main fucntion

【问题讨论】:

  • 它有点长,所以我认为最好在另一个网站上发布,但我现在尝试在此处添加代码
  • 您不能只是将多个文件中的代码复制粘贴到在线 IDE 中,#includes 将不起作用并掩盖实际错误。但请注意,Rectangle paraFirst(); 将被解析为函数声明,而不是构造函数调用。
  • 你现在看到代码了吗?
  • 如果您添加错误文本,您的问题会更好。如果这是 Visual Studio,则输出选项卡是从错误列表复制错误消息文本的更好选择。原因是输出选项卡更详细,其 100% 文本不是单独的列表。

标签: c++ class oop object


【解决方案1】:

假设#includes 在您的本地设置中工作,我在这里看到两个拼写错误:

  • cin&gt;&gt;width&gt;&gt;length;必须std::cin &gt;&gt; width &gt;&gt; length;
  • return (width+length)*2 后缺少分号

可能是主要问题:

Rectangle paraFirst();

被解析为不带参数并返回Rectangle 的函数的声明。另见Most vexing parsing。要调用默认构造函数,只需使用

Rectangle paraFirst;    

Rectangle paraFirst{};

【讨论】:

  • 嗨!谢谢!它有帮助:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多