Помогите написать конструктор
{
int a2;
int b2;
public:
Line (Point p1, Point p2):Point(p1 a2(p2.a b2(p2.b){}
};
В данном случае, лучше сделать композицию, чем наследование
class Line
{
public:
Point p1;
Point p2;
Line (Point p1, Point p2)
{
this.p1 = p1;
this.p2 = p2;
}
Line (int x1, int y1, int x2, int y2)
{
this.p1.x = x1;
this.p1.y = y1;
this.p2.x = x2;
this.p2.y = y2;
}
}
Ты зачем девушку плохому учишь?
2. Линия - это такая точка, которая имеет длину и ориентацию
3. На ней не написано что она девушка
Line (Point p1, Point p2)
{
this.p1 = p1;
this.p2 = p2;
}
у тебя для Point'ов вызывается default-конструктор, а затем - оператор присваивания, что не есть good в общем случае
Ты где это видел компилятор, который так себя ведет?
gcc 3.3.3
p.a и p.b объявлены как private, их нельзя читать из класса Line.
Оставить комментарий
swimmerira
Такая проблема!Хотела написать два примитивных объекта - точку и линию.
С точкой проблем не возникло, а вот написать грамотно конструктор для линии, чтобы инициализировать ее по двум точкам никак не могу. Как сделать так, чтобы конструктор производного класса воспринял объекты базового при своей инициализации если это вообще возможно.
Заранее спасибо!
Ниже листинг с обоими классами.
class Point
{
int a;
int b;
public:
Point(int x, int y){ a=x; b=y;};
};
class Line: public Point
{
int a2;
int b2;
public:
Line (Point p1(x,y Point p2(x2, y2; // как написать конструктор с параметрами p1
//и p2 ?
};