Форум программистов, компьютерный форум 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: string name; string family; http://www.cyberforum.ru/cpp-beginners/thread638230.html
Невидимые символы C++
Как можно в RichEdit сделать часть текста невидимой для пользователя? То есть у меня есть теги, которые делают текст цветным, и мне не надо чтобы они были видны для пользователя, но в тексте они были. Не оч хороший пример: окно сообщений аськи (скайпа). Смайл вставляешь, теги не видны, а вместо них смайлик. А если в 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++ Здравствуйте, Извините если это уже НЕ первая тема. С консольными приложениям разобрался (массивы, переменные, циклы). Прошу Посоветовать Сайты или Порталы, в которых можно найти ВИДЕОУРОКИ по Windows Forms C++ Главное там чтоб про всё рассказывалось Например: Всё о "Button" её св-ва и применение, и так про все элементы Окна Windows Буду Благодарен!!! Если совсем нет тогда можно книгу! подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.08.2012, 07:12     Явное наследование конструкторов
Цитата Сообщение от StasGamilton Посмотреть сообщение
Child() : Base() { // вызов конструктора Base, иначе под массив a не выделится память
Выделится. Если в списке инициализаторов (initialization list), конструктора производного класса, явно не вызван конструктор базового класса, то автоматически будет вызван конструктор по умолчанию базового класса. В любом случае, при создании (выделении памяти под) объекта производного класса, программа сначала создаёт (выделяет память под) объект базового класса. И происходит это до того, как программа дойдёт до тела конструктора производного класса, в котором происходит занесение, в уже выделенную память, значений полей объекта производного класса. Для этого используется список инициализаторов элементов. Объект базового класса должен быть создан первым, поэтому, если не вызывать, в списке инициализаторов, конструктор базового класса, то будет вызван конструктор по умолчанию базового класса. Если же не нужен конструктор по умолчанию, а нужен какой-нибудь другой конструктор базового класса, то его следует явно указать в списке инициализаторов.

Добавлено через 10 минут
Цитата Сообщение от Leeto Посмотреть сообщение
Если препод требует наследовать констуркторы явно что он имеет ввиду делать это только для дефолтных конструкторов или для не дефолтных тоже надо это делать
В каждом объекте производного класса, есть объект базового класса. Каким конструктором хотите инициализировать поля этого объекта базового класса, такой конструктор и вызывайте в списке инициализаторов. Если никакой не вызовите, то автоматически будет вызван конструктор по умолчанию базового класса.

Цитата Сообщение от Leeto Посмотреть сообщение
и какая должна быть имплементация таких дерайфтных дефолтных конструкторов
пустая ???
или не пустая например
Не должна. Какая нужна вам. Какую напишите, та и будет.

Добавлено через 16 минут
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
class Base 
{
  public:
    Base() 
    {
      x = 0;
      a = 0;
    }
    
    Base(int n) 
    {
      x = n;
      a = new char[20];
    }
    
 private:
     char* a;
     int x;
};
 
 
class Child : public Base 
{
  public:
    Child() : Base() // явный вызов конструктора по умолчанию для объекта Base.
    {   
      c = 0;
    }
 
    Child(int _c)  // Здесь будет неявный вызов конструктора по умолчанию для объекта Base.
    {  
       c = _c;
    }
    
    Child(int a, int _c) : Base(a) // Явный вызов конструктора для объекта Base.
    {  
       c = _c;
    }
 
private:
    int c;
};
 
Текущее время: 14:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru