Ok Ich bearbeite meinen Code, was ich tun möchte, ist einfach Ich habe eine große Form mit corrdinates (x, y). Ich möchte meine ursprüngliche Form ändern, sie in einer neuen Figur innerhalb einer Klasse namens "new" speichern und diese neue Form in die Koordinaten (x, y) verschieben, die ich möchte.new Edit Bereich und Koordinaten
// 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;
}
Jetzt habe ich vier Fehler: In der Funktion 'int main()': 66: 6: Fehler: 'movef' nicht in diesem Umfang 68:51 erklärt wurde: Fehler: keine passende Funktion für Aufruf zu 'New :: movef()' 68:51: Anmerkung: Kandidat: 21.11: note: void Form :: movef (int, int) 21.11: note: Kandidat erwartet 2 Argumente, 0 bereitgestellt . Auch ich glaube nicht, dass ich "move.f" verwenden kann, habe ich Hilfe erstellt?
Ihre Frage ist ziemlich unklar, können Sie bitte detailliert, was Sie brauchen? – shrike
@shrike Ich habe eine Skizze gemacht. Es kann helfen – FL93
Vielleicht möchten Sie eine 'Shape' Klasse erstellen und daraus Klassen (wie' Square' und 'Ell') ableiten. Meinst Du das? – Beta