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

что происходит со старым конструктором когда я создаю новый, пренадлежащий производному типу? (первый конструктор пренадлежит базовому типу) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевести код Pascal на C++ http://www.cyberforum.ru/cpp-beginners/thread152440.html
Program PROGRAMMA6; uses dos, crt, graph; Const N=110; M=90; s=13; r=6; h=5; Var y, yy, u : array of integer; ii, jj, j, k, Gd, Gm : integer; i : Longint; Label met; BEGIN
C++ sting это класс. а int, double и char? sting это класс. а int, double и char? http://www.cyberforum.ru/cpp-beginners/thread152434.html
В строке скопировать каждый второй символ в конец строки C++
есть задача: в строке s скопировать каждый 2й символ в конец строки. я не могу понять в чем ошибка, либо просто не понял условие clrscr(); char *str, *str2; cout<<"Enter string: "; cin>>str; for(int i=0;strlen(str);i++) if(str==str) {
Литература C++ C++
Related Links Ссылки по теме C++ . Borland C++ Builder . Visual C++ .
C++ Почему вылетает эксепшн? http://www.cyberforum.ru/cpp-beginners/thread152350.html
Товарищи, подскажите, почему вылетает эксепшн? char *p = "qwerty"; p = 'a'; Потому что p указывает на константное выражение "qwerty"? Пытался избавиться от константности приведением типов при помощи const_cast<char*>... Не помогает:)
C++ Полиморфизм и иерархия классов. Очень надеюсь на Вашу помощь. На экране имеются круг и точка, которые двигаются при нажатии клавиш-стрелок (для круга) или wasd(для точки). Может двигаться либо точка, либо круг. При нажатие определенной клавише точка или круг меняют свой цвет. Нужна помощь в создании классов. #include <iostream.h> #include<graphics.h> #include<conio.h> enum Boolean{false, true}; class... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
08.07.2010, 12:28
Цитата Сообщение от nikkka Посмотреть сообщение
я могу использовать оба конструктора?
Оба конструктора (и деструктора) можно и даже нужно использовать.
Вот небольшой пример.
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
#include <iostream>
 
class parent
{
protected:
    int* m_pn;
public:
    parent(int x)
    {
        m_pn = new int(x);
        std::cout << "Constructor of the parent class" << std::endl;
    }
    virtual ~parent()
    {
        delete m_pn;
        std::cout << "Destructor of the parent class" << std::endl;
    }
};
 
class heir: public parent
{
private:
    double* m_pd;
public:
    heir(int x, double y)
        :parent(x)
    {
        m_pd = new double(y);
        std::cout << "Constructor of the inherit class" << std::endl;
    }
    virtual ~heir()
    {
        delete m_pd;
        std::cout << "Destructor of the inherit class" << std::endl;
    }
};
 
int main()
{
    parent* pprn = new heir(8, 9.5);
    delete pprn;
    system("pause");
    return EXIT_SUCCESS;
}
Конструктор класса heir (производного) вызывает конструктор класса parent (базового), чтобы инициализировать поля базового класса. При вызове деструктора производного класса также автоматически вызывается деструктор базового класса, чтобы зачистить данные базового класса. Обрати внимание на результаты работы программы.

Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от nikkka Посмотреть сообщение
извените за ошибку в назвнии темы - везде вместо слова "тип" должно быть слово "класс"
Можно говорить, что это синонимы.

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