Не удалось передать переменную из моего. cpp в класс .h? - PullRequest
0 голосов
/ 01 августа 2020

У меня следующая настройка:

Square.h

#ifndef square_h
#define square_h
#include "Shape.h"
using namespace std;

class Square : public Shape
{
     public:
              Point * points = nullptr;
              int minX = 0;
              int maxX = 0;
              
              ...

              void getMinMax(Point *points, int minX, maxX)
}
# endif

Square. cpp

...

void Square :: getMinMax(Point *points, int minX, int maxX)
{
    this->minX = points[3].x;
}

...

string Square :: toString()
{
     cout << "Minimum X : " << minX << endl;
}

main. cpp

...

for(size_t i = 0; i < shapes.size(); i++)
{
    cout << shapes[i]->toString();
}

На основе приведенного выше фрагмента кода у меня есть функция в квадрате. cpp, которую я пытаюсь передать minX обратно в переменную minX .h. Идея состоит в том, чтобы разрешить использование этого minX в других функциях, объявленных внутри файла .h.

Однако я всегда получаю 0, когда я cout minX в других функциях, даже если мой points[3].x has> 0.

Каким будет правильный способ передать по ссылке мой minX в мою переменную класса заголовка minX?

Примечание. Функция. cpp - это просто тест для посмотрите, передается ли мое значение в .h minX.

1 Ответ

1 голос
/ 01 августа 2020

Метод toString() ничего не возвращает. Он должен возвращать строку, а не записывать ее в cout. Вы записываете результат в cout, когда делаете cout << shapes[i]->toString();.

string Square :: toString()
{
    std::stringstream ret;
    ret << "Minimum X : " << minY << endl;
    return ret.str();
}
...