Zdravím,
nevíte náhodou, co znamená chyba: /tmp/cc9LyYru.o: In function `Circle::Circle(int, int, int, int)':
graphics1.cpp:(.text+0x33): undefined reference to `Graphic::Graphic(int, int)'
collect2: ld returned 1 exit status
Celý skript jsem projela přesně podle kamarádova podobného úkolu (on pouze načítal hodnoty od uživatele), ale jinak mu daný program jede, mně ne. Četla jsem nějaká starší vlákna, co řešila něco podobného, kde se musela nalinkovat knihovna. Jenže to u toho podobného kamarádova skriptu nemusím. Nějak nechápu, v čem je problém :/
#include <iostream>
#include <g2.h>
#include <g2_X11.h>
using namespace std;
class Graphic
{
public:
Graphic();
Graphic(int ax, int ay);
void setValues(int ax, int ay) {x = ax; y = ay;}
int getCentreX() { return x;}
int getCentreY() { return y;}
void printValues() { cout << "Hodnota x: " << x << endl << "Hodnota y: " << y << endl;}
private:
int x, y;
};
Graphic::Graphic() { x=70; y=80;}
class Circle : public Graphic
{
public:
Circle();
Circle(int ax, int ay, int r, int c);
void setValues(int ax, int ay, int r, int c) { Graphic::setValues(ax, ay); radius = r; color = c;}
int getRadius() { return radius;}
int getColor() {return color;}
void printValues() {Graphic::printValues(); cout << "Radius: " << getRadius() << endl; cout << "Color: " << getColor() << endl;}
void draw() { int dev = 0;
dev = g2_open_X11(600, 600);
g2_set_line_width (dev, 2);
g2_pen(dev, getColor());
g2_circle (dev, Graphic::getCentreX (), Graphic::getCentreY(), getRadius());
cin.get();
cin.get();
g2_close(dev); }
private:
int radius, color;
};
Circle::Circle(int ax, int ay, int r, int c) : Graphic(ax, ay) { radius = r; color = c; }
Circle::Circle() : Graphic (){ radius = 10; color = 19;}
int main()
{
Graphic gra; //(300, 30)
Circle circ; //(200, 20, 29, 2)
//int x, y;
//gra.setValues(300, 30);
//circ.setValues(x, y,200, 20);
circ.printValues();
gra.printValues();
gra.setValues(100, 109);
gra.printValues();
circ.draw();
return 0;
}