Как вызвать метод из другого класса (область прямоугольника) - PullRequest
0 голосов
/ 07 апреля 2020

Это мой первый вопрос на этом сайте, я относительно новый программист и практикую 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;

}

1 Ответ

0 голосов
/ 07 апреля 2020

Вы не можете определить класс внутри функции. Также, если все члены класса опубликованы c, то, вероятно, лучше просто использовать 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;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...