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

копирующий конструктор и иерархия - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите разобраться что не работает http://www.cyberforum.ru/cpp-beginners/thread133501.html
Вот собственно код программки из книги Харви Дейтела
C++ Посчитать число имени Чтобы определить число имени нужно воспользоваться особой таблицей, в которой каждая буква имеет свое числовое обозначение: 1 2 3 4 5 6 7 8 9 А Б В Г Д Е Ё Ж З И Й К Л М Н... http://www.cyberforum.ru/cpp-beginners/thread133498.html
очередь из двух стеков C++
Тема: Динамическое управление памятью На C++ создать очередь из двух стеков.
C++ сформированный файл, обработать результаты чемпионата
Вот задачка,я не могу никак решить....В чемпионате из футбола принимает участие 16 команд. Cформувати файл команд и результатов матча (выигрыш - 2 ОЧКА, ничья -1, проигрыш - 0 ). Используя...
C++ Массив указателей на функцию http://www.cyberforum.ru/cpp-beginners/thread133481.html
Как объявить массив указателей на функцию?
C++ Найти сумму элементов той строки, в которой расположен максимальный элемент матрицы Дана целочисленная квадратная матрица порядка n. Найти сумму элементов той строки, в которой расположен максимальный элемент матрицы. Если таких строк несколько, вывести все суммы. Матрицу... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
22.05.2010, 09:44
Это не копирующие конструкторы, они и не нужны. Копирующий конструктор извлекает данные из объекта того же самого класса. То есть, такие конструкторы были бы описаны так:
C++
1
2
3
Father::Father(const Father& src);
Student::Student(const Student& src);
FatherStudent::FatherStudent(const FatherStudent &src): Student(src), Father(src) {}
В данном случае ссылка на src, имеющий тип FatherStudent, автоматически приводится к нужному типу-предку, и конструкторы Father и Student получают подобъект нужного типа. То есть, для конструирования Student из src выдирается та часть FatherStudent, что унаследована от Student, а для Father выдёргивается кусочек, соответствующий типу Father. Надеюсь, мне не надо упоминать, что при наследовании предок целиком входит в состав потомка и в потомке завсегда можно выделить кусочек, полностью соответствующий предку, как если бы в потомке был попросту объявлен член соответствующего типа?
C++
1
2
3
4
5
6
7
8
9
class FatherStudent {  // Аналог простого наследования
public:
    FatherStudent(const std::string &name, int curs, int childnum): student(name, curs), father(name, childnum) {}
// Ну и автоматическое преобразование ссылок и указателей с членами, конечно, не работает
    FatherStudent(const FatherStudent &src): student(src.student), father(src.father) {}  
private:
    Student student;
    Father father;
};
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru