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

Контруктор по умолчанию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при перегрузке операторов http://www.cyberforum.ru/cpp-beginners/thread396159.html
#include <stdio.h> #include <conio.h> class fraction { public: int numerator; int denominator; fraction(); fraction(int i){
C++ Не понимаю вопроса Упорядочить массив по убыванию элементов последнего столбца (использовать сортировку пузырьком). Что сие означает? я имею ввиду часть "по убыванию элементов такого-то столбца" http://www.cyberforum.ru/cpp-beginners/thread396120.html
Разделение числа на разряды C++
Подскажите,алгоритм программы,которая выполняет разделение числа на разряды. Т.е вводится число,например, 456 и программа выводит 400-50-46
C++ Чтение каталога
Не пойму, почему выдает ошибку сегментирования в 28 строке?:wall: int Showd(const char*dir_name, std::vector<std::string>*list) { /*lWin=newwin(21, 50, 2, 8); wattron(lWin, COLOR_PAIR(6)); box(lWin, ACS_VLINE, ACS_HLINE); wmove(lWin, 4, 10); wprintw(lWin, "F2(***)");
C++ Изменение палитры bmp изображения http://www.cyberforum.ru/cpp-beginners/thread396102.html
Ребят, помогите пожалуйста. У меня стоит задача изменить палитру в bmp изображении чтоб первые 118 цветов были белыми, а другие 118 черными. Другими словами палитра должна иметь вид: R G B 1 0 0 0 2 0 0 0 3 0 0 0 .. 118 0 0 0 119 255 255 255 120 255 255 255 121 255 255 255
C++ Нужно записать в файл четные числа Дано файл f компонентами которого являются натуральные числа. Получить в файле g все компоненты файла f: что есть четными числами подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
01.12.2011, 00:55     Контруктор по умолчанию
thick_int,
Запутанное изложение, поэтому у меня сразу же возникает отрицательное отношение к этой книге, хотя я ее не читал.

Оставим в стороне эту книгу, и обсудим, что на самом деле имеет место.

Первый важный момент. Конструктор по умочанию - это конструктор, который может быть вызван без аргументов. Это совершенно не означает, тчто конструктор не должен иметь параметров. Это означает, что если он имеет параметры, то все его параметры имеют аргументы по умолчанию.

Например, конструктор

C++
1
MyClass::MyClass( int x = 10, int y = 20 ) {}
явяется конструктором по умолчанию, так как он может быть вызван без аргументов.

Второе. В конструкторе по умолчанию вы можете вызывать конструкторы с аргументами для его базовых классов и для подобъектов, имеющих тип класса. Например,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A
{
public:
   A( int i ): a( i ) {}
private:
   int a;
};
 
class B
{
 public:
   B( long x, double y ): b1( x ), b2( y ) {}
};
 
class C: public A
{
public:
   C() : A( 10 ), b( B( 20L, 30.0 ) ) {}
private:
   B b;
};
В этом примере класс С имеет конструктор по умолчанию, так как этот конструктор может быть вызван без аргументов. Тем не менее для своего базового класса и для своего подобъекта он вызывает конструкторы, которым должны передаваться аргументы.

Другое дело, если программсит сам не объявил конструктор по умолчанию. В этом случае компилятор сам за него генерирует конструктор по умолчанию, который имеет вид

C++
1
inline MyClass::MyClass() {}
Этот конструктор имеет пустой список инициализации и пустое тело. Поэтому для такого конструктора будут вызваны конструкторы по умолчанию для его базовых классов и для его подобъектов, имеющих тип класса.

И еще я хотел бы добавить, так как вам здесь уже успели сообщить глупость, что в своем конструкторе по умочанию, вы не обязаны явно вызывать конструкторы базовых классов! Они будут вызваны автоматически, если имеются таковые конструкторы по умолчанию для базовых классов!
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru