如何从不同的类(矩形区域)调用方法

Posted

技术标签:

【中文标题】如何从不同的类(矩形区域)调用方法【英文标题】: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 也提示用户输入面积和宽度并尝试查找用公式给出的值的长度周长。 【参考方案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 类中输入面积和宽度的值时,它会自动知道我想要找到具有新尺寸的第二个矩形的面积。说得通?我不确定这是不是它的工作原理

以上是关于如何从不同的类(矩形区域)调用方法的主要内容,如果未能解决你的问题,请参考以下文章

从不同的类调用方法时出现空指针异常

从不同的类调用主变量

idea debug调试中如何只执行当前所调试的类和方法,执行完不进入调用方法和jar中

C ++如何从包含的类中调用父类方法?

如何从不同的类初始化方法中的列表项?

如何从扩展 JobService 的类中调用将视图作为参数的 MainActivity 方法?