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

Явное наследование конструкторов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсчет времени http://www.cyberforum.ru/cpp-beginners/thread638247.html
Собственно, нужно реализовать отсчет времени, сколько работает программа и вывести в лэйбл, как это реализовать?
C++ STL помогите сделать ввод ФИО и возраста через STL .Вот часть моего кода#include <string> #include <vector> #include <algorithm> #include <iostream> using namespace std; class Abonent { private:... http://www.cyberforum.ru/cpp-beginners/thread638230.html
Невидимые символы C++
Как можно в RichEdit сделать часть текста невидимой для пользователя? То есть у меня есть теги, которые делают текст цветным, и мне не надо чтобы они были видны для пользователя, но в тексте они...
C++ Посчитать количество цифр целого неотрицательного числа n
#include <iostream> using namespace std; int main() { unsigned long int n = 0,m=0; cin >> n; if (n>10) { m++;
C++ выравнивание при печати http://www.cyberforum.ru/cpp-beginners/thread638185.html
#include <ctime> #include <iostream> #include <Windows.h> #include <conio.h> using namespace std; void print (int numbers, unsigned const int size); int main() {
C++ Windows Forms C++ Здравствуйте, Извините если это уже НЕ первая тема. С консольными приложениям разобрался (массивы, переменные, циклы). Прошу Посоветовать Сайты или Порталы, в которых можно найти ВИДЕОУРОКИ по... подробнее

Показать сообщение отдельно
StasGamilton
Эксперт по пяченькам
67 / 67 / 1
Регистрация: 16.08.2011
Сообщений: 258
16.08.2012, 03:02
Цитата Сообщение от Leeto Посмотреть сообщение
Если препод требует наследовать констуркторы явно что он имеет ввиду делать это только для дефолтных конструкторов или для не дефолтных тоже надо это делать
и какая должна быть имплементация таких дерайфтных дефолтных конструкторов
пустая ???
Конструктор выполняет необходимые действия для создания объекта класса (заполнение полей и т.д.). Если ты наследуешься от базового класса, у которого в конструкторе есть какие-то действия, то чтобы не переписывать их (если конечно их нужно выполнить), ты вызываешь этот конструктор из конструктора наследуемого класса, и если не все необходимые действия выполняются, то дописываешь их. Так что здесь нужно смотреть на то, что выполняет тот или иной конструктор. Если дефолтный конструктор базового класа выделяет память под динамический массив, который играет важную роль в базовом и наследуемом классе, то нужно бы его вызывать не только из дефолтного конструктора.

пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Base {
  public:
    Base() {
      a = new char[20];
    }
 
   private:
     char* a;
};
 
 
class Child : public Base {
  public:
    Child() : Base() {   // вызов конструктора Base, иначе под массив a не выделиться память
      c = 0;
    }
 
    Child(int _c) : Base() {  // Здесь тоже самое
       c = _c;
    }
  private:
    int c;
}
Добавлено через 8 минут
Цитата Сообщение от Leeto Посмотреть сообщение
вообще явное наследование не дефолтых констукторов это же ахинея так ? ???
Это нормальное являение
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
class Point {
 public:
  Point() {
   x = 0; y = 0;
  }
  Point(int x, int y) {
   this->x = x;
   this->y = y;
  }
 private:
  int x, y; 
};
 
class Circle : public Point {
 public:
  Circle() : Point() {
   range = 0;
  }
  
  Circle(int x, int y, int range) : Point(x, y) {   // Вызывая Point(x,y), мы заполняем x,y для Circle
    this->range = range;
  }
 private:
  int range;
};
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru