【问题标题】:How to call a method from a different class (area of rectangle)如何从不同的类(矩形区域)调用方法
【发布时间】:2020-04-06 22:49:37
【问题描述】:

这是我在这个网站上的第一个问题,我是一个相对较新的程序员,我正在练习 c++。我用 C++ 编写了一个代码,用于查找矩形的面积和周长,用户自己输入面积和宽度,然后使用公式连同面积和周长一起计算长度。我做了两个类,一个使用面积和周长方法作为计算,第二个类作为另一个矩形,我试图找到它的面积和周长。我正在尝试使用第一堂课中的相同公式并将其调用到第二堂课中,因此我不需要再次写出公式,只需写出尺寸即可。这是 OOPS(面向对象编程)吗?任何人都可以帮助我这个课程和方法吗? 谢谢, 阿迪亚 代码图片:https://i.stack.imgur.com/5zpJr.jpg

#include <iostream>
#include <cmath>
#include<math.h>
using namespace std;
class Rectangle {
  public:
  int length;
  int width;
  int area;
  int perimeter;
};

int main() {
  Rectangle calc1;
  cout << "Enter area= \n" << endl;
  cin >> calc1.area;
  cout << "Enter width= \n" << endl;
  cin >> calc1.width;
  calc1.length = (calc1.area / calc1.width);
  cout << "Length is " << calc1.length << endl;

  Rectangle calc2;

  calc2.perimeter = ((2 * calc1.length) + (2 * calc1.width));
  cout << "Perimeter is " << calc2.perimeter << endl;

  class Rectangle2 : public Rectangle {

  public:
  Rectangle2 calc3;
  cout << "Enter area= \n" << endl;
  cin >> calc1.area;
  cout << "Enter width= \n" << endl;
  cin >> calc1.width;
  calc1.length = (calc1.area / calc1.width);

  cout << "Area of rectangle 2 is" << calc3.T_area << endl;

}

【问题讨论】:

  • 为什么不只有一个知道如何计算其面积的Rectangle 类(例如int Rectangle::CalculateArea ())?
  • 我很困惑你试图用 Rectangle2 类做什么。有多种原因看起来不对。
  • @drecherjm:矩形 2 类是我的代码中的另一个矩形,它试图在矩形 1 类中遵循相同的公式,矩形 2 也提示用户输入面积和宽度并尝试查找用公式给出的值的长度周长。

标签: c++ class methods


【解决方案1】:

你不能在函数内部定义类。此外,如果一个类的所有成员都是公共的,那么最好只使用 struct instate。这是它的外观示例。

#include <iostream>
#include <cmath>
#include <math.h>

using namespace std; // this is bad

struct Rectangle {
  int length;
  int width;
  int area;

  int perimeter() { return ((2 * length) + (2 * width)); };
};

struct Rectangle2 : public Rectangle {

};

int main() {
  Rectangle calc1;
  cout << "Enter area= \n" << endl;
  cin >> calc1.area;
  cout << "Enter width= \n" << endl;
  cin >> calc1.width;
  calc1.length = (calc1.area / calc1.width);
  cout << "Length is " << calc1.length << endl;

  cout << "Perimeter is " << calc1.perimeter() << endl;

  Rectangle2 calc3;
  cout << "Enter area= \n" << endl;
  cin >> calc1.area;
  cout << "Enter width= \n" << endl;
  cin >> calc1.width;
  calc1.length = (calc1.area / calc1.width);

  cout << "Area of rectangle 2 is" << calc3.area << endl;

}

【讨论】:

  • 嗨,我认为我的解释不够清楚。看,我试图让我使用来自第一类 Rectangle 类的相同公式并拥有它,这样当我在 Rectangle 2 类中输入面积和宽度的值时,它会自动知道我想要找到具有新尺寸的第二个矩形的面积。说得通?我不确定这是不是它的工作原理
猜你喜欢
  • 2017-08-05
  • 1970-01-01
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
相关资源
最近更新 更多