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

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

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

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

11.11.2012, 16:20. Просмотров 370. Ответов 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;
Почему оно не работает и как сделать так, чтобы работало?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 16:20     Запуск конструктора родителя в дочернем конструкторе
Посмотрите здесь:
Как избежать повтора параметров конструктора класса-родителя в конструкторе наследника? C++
Можно ли как-то в дочернем классе получить указатель родителя? C++
C++ В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать?
C++ Ошибка в дочернем классе
C++ Перегрузка fstream в дочернем классе
Изменение информации в дочернем классе, через ссылку C++
Использование переменных базового класса в дочернем классе C++
Не могу в дочернем классе вызвать protected метод C++
C++ R6025 pure virtual function call при вызове метода, реализованного в дочернем классе
Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе C++
Инициализация родителя C++
C++ Узнать id родителя процесса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13050 / 7313 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 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);
    }
Ответ Создать тему
Опции темы

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