Новая область редактирования и координаты

Хорошо, я редактирую свой код, то, что я хочу сделать, это просто, у меня есть большая форма с corrdinates (x, y). я хочу изменить размер моей примитивной фигуры, сохранить ее внутри новой фигуры внутри класса, называемого «новым», и переместить эту новую фигуру в нужные мне кординаты (x, y).

// Example program
#include <iostream>
#include <string>

// Base class Shape

class Shape
{
public:

Shape(int inwidth, int inheight): width(inwidth), height(inheight){
}
void ResizeW(int w)
{
width = w;
}
void ResizeH(int h)
{
height = h;
}
void moveF(int x_delta, int y_delta)
{
x1 = x_delta;
y1 = y_delta;
x2 = x_delta;
y2 = y_delta;
}

protected:

int x1=0, y1=0, x2=5, y2=6;
int width;
int height;
};

// Primitive Shapes

class Ps2: public Shape
{
public:

Ps2 (int width, int height): Shape(width, height){
}
int getArea()
{
return (width * height);
}
};

// Derived Shapes

class New: public Ps2
{

int x1_relativ, y1_relativ, x2_relativ, y2_relativ;
public:
int area;
New(): Ps2(8, 4), area(getArea()){ }
};int main(void)
{
New kit;
moveF.kit (4, 3, 5, 7);
std::cout << "Total area: " << kit.getArea();
std::cout << "Cordinates are: " << kit.moveF();

return 0;
}

Теперь у меня есть четыре ошибки: В функции ‘int main ()’:
66: 6: ошибка: ‘moveF’ не был объявлен в этой области
68:51: ошибка: не найдена соответствующая функция для вызова функции New :: moveF ()
68:51: примечание: кандидат:
21:11: note: void Shape :: moveF (int, int)
21:11: примечание: кандидат ожидает 2 аргумента, 0 предоставлено.
Также я не думаю, что могу использовать «move.f». Я создал какую-либо помощь?

0

Решение

Ну, компилятор точно скажет, в чем проблема:

moveF.kit (4, 3, 5, 7);

не действительный код Вы имели в виду kit.moveF? Кроме того, почему четыре параметра? MoveF имеет два.

станд :: соиЬ << «Координаты:» << kit.moveF ();

имеет две ошибки, во-первых, moveF требует двух параметров, которые вы не предоставляете, во-вторых, kit.moveF является пустым и, следовательно, не выдаст ничего, что может отобразить std :: cout.

Кроме того, ваши атрибуты x1, x2, y1, y2 не могут быть доступны извне. Это не похоже на намерение. Производный класс мог бы получить к ним доступ, но сейчас его нет.

Кроме того, New — ужасное имя для класса. Смутил меня сначала, чтобы увидеть новый комплект ;. Новое явно не зарезервировано, но оно кажется сдержанным, если вы понимаете, о чем я.

Мой совет, что вы читаете учебник о классах и методах. Кажется, что ваше понимание того, как работают методы, ошибочно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector