如何从不同的类(矩形区域)调用方法
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 类中输入面积和宽度的值时,它会自动知道我想要找到具有新尺寸的第二个矩形的面积。说得通?我不确定这是不是它的工作原理以上是关于如何从不同的类(矩形区域)调用方法的主要内容,如果未能解决你的问题,请参考以下文章