Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Destank
99 / 99 / 10
Регистрация: 26.01.2012
Сообщений: 339
Записей в блоге: 1
#1

Запуск конструктора родителя в дочернем конструкторе - C++

11.11.2012, 16:20. Просмотров 385. Ответов 1
Метки нет (Все метки)

Вобщем имеется два класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class Coma{
public:
    double x,y;
    Coma(){
        x=0;
        y=0;
    }
    Coma(int x, int y){
        this->x=x;
        this->y=y;
        //cout<<x<<y<<this->x<<this->y;
    }
    void operator ~ (){
        cout<<"("<<this->x<<";"<<this->y<<")";
    }
};
 
class Line : public Coma{
public:
    double x1, y1;
    double Length;
    Line(){
        Coma::Coma();
        this->x1=0;
        this->y1=0;
        Length=pow((pow((this->x-this->x1),2)+pow((this->y-this->y1),2)),0.5);
    }
    Line(double x, double y, double x1, double y1){
        
        Coma::Coma(x, y);
        //this->x=x;
        //this->y=y;
        this->x1=x1;
        this->y1=y1;
        Length=pow((pow((this->x-this->x1),2)+pow((this->y-this->y1),2)),0.5);
    }
    void operator ~ (){
        cout<<"Линия от ("<<x<<";"<<y<<") до ("<<this->x1<<";"<<this->y1<<") Длина: "<<Length;
    }
};
 
 
 
void perf(int N){
    for(int i=0; i<N; i++)
        cout<<char(95);
    cout<<endl;
}
 
 
void main (void){   
    Coma A(2,4);
    ~A;
    cout<<endl;
    perf(30);
 
    Line Line1(1,2,1,4);
    ~Line1;
    cout<<endl;
 
    
    
 
    cout<<endl;
    system("pause;");
}
Суть в том, что Line это как бы расширение для Coma т.е. тоже амое только не2 а 4 параметра, в конструктор Line приходят 4 параметра, два он забрасывает в Coma, а другие два обрабатывает сам, но суть в том, что это почему то не работает.
Так все норм
C++
1
2
3
4
5
//Coma::Coma(x, y);
        this->x=x;
        this->y=y;
                      this->x1=x1;
        this->y1=y1;
Но мне надо так
C++
1
2
3
4
5
Coma::Coma(x, y);
        //this->x=x;
        //this->y=y;
        this->x1=x1;
        this->y1=y1;
Почему оно не работает и как сделать так, чтобы работало?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 16:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запуск конструктора родителя в дочернем конструкторе (C++):

Как избежать повтора параметров конструктора класса-родителя в конструкторе наследника? - C++
С каждым новым наследуемом классом, число параметров конструктора увеличивается. class A { public: A(int a, float b, double c) ...

Можно ли как-то в дочернем классе получить указатель родителя? - C++
У меня тут появилась мыслишка :D В любом классе есть так сказать скрытый указатель на самого себя - this, а можно ли как то получить в...

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать? - C++
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и какой плюс от использования перемещающего...

Ошибка в дочернем классе - C++
Не могу найти ошибку в дочернем классе, возможно не правильно написать main Задание и код: Код нужно переписывать в сообщение Только...

Перегрузка fstream в дочернем классе - C++
h class Child:public StudentsBD{ friend fstream &amp;operator&lt;&lt;( fstream&amp; , string &amp; ); friend fstream &amp;operator&gt;&gt;( fstream&amp; , string...

Не могу в дочернем классе вызвать protected метод - C++
Всем привет! Начал писать одну программку, и столкнулся со следующей проблемой: у меня пока 2 класса: MemObject и Vector, где Vector...

1
Croessmah
Эксперт CЭксперт С++
13412 / 7563 / 855
Регистрация: 27.09.2012
Сообщений: 18,614
Записей в блоге: 3
Завершенные тесты: 1
11.11.2012, 16:25 #2
C++
1
2
3
4
5
    Line(double x, double y, double x1, double y1):Coma(x,y){
        this->x1=x1;
        this->y1=y1;
        Length=pow((pow((this->x-this->x1),2)+pow((this->y-this->y1),2)),0.5);
    }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2012, 16:25
Привет! Вот еще темы с ответами:

Использование переменных базового класса в дочернем классе - C++
Доброго времени суток. Подскажите пожалуйста как в классе SumbString работать с переменными(string s;int z ; ) класса factory ? Мне...

Изменение информации в дочернем классе, через ссылку - C++
Подскажите, есть класс class Class1 В конструкторе я создаю структуру, которая будет хранить в себе ссылки на все классы...

R6025 pure virtual function call при вызове метода, реализованного в дочернем классе - C++
Всем привет. Вот такая ошибка у меня возникает при вызове метода, который реализован в дочернем классе, но потом он почему-то становится...

Вывод поста, который содержит id категории, её родителя, родителя родителя - MySQL
Есть 2 таблицы, первая - категории ( category_id, parent_id и т.д), вторая - посты (post_id, category_id) В общем, в &quot;категориях&quot; есть 12...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru