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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Помогите разобраться что не работает http://www.cyberforum.ru/cpp-beginners/thread133501.html
Вот собственно код программки из книги Харви Дейтела
C++ очередь из двух стеков Тема: Динамическое управление памятью На C++ создать очередь из двух стеков. http://www.cyberforum.ru/cpp-beginners/thread133487.html
C++ сформированный файл, обработать результаты чемпионата
Вот задачка,я не могу никак решить....В чемпионате из футбола принимает участие 16 команд. Cформувати файл команд и результатов матча (выигрыш - 2 ОЧКА, ничья -1, проигрыш - 0 ). Используя сформированный файл, обработать результаты чемпионата и распечатать названия команд, которые заняли призовые места, а также количество побед каждой команды.
Массив указателей на функцию C++
Как объявить массив указателей на функцию?
C++ Найти сумму элементов той строки, в которой расположен максимальный элемент матрицы http://www.cyberforum.ru/cpp-beginners/thread133474.html
Дана целочисленная квадратная матрица порядка n. Найти сумму элементов той строки, в которой расположен максимальный элемент матрицы. Если таких строк несколько, вывести все суммы. Матрицу сформировать из случайных чисел в диапазоне от –10 до 10. Помогите пожалуйста!
C++ В матрице определить минимальный элемент и номер строки, где он находится В матрице размерами N*M определить минимальный элемент и номер строки, где он находится (N и M не больше 10). Матрицу сформировать из случайных чисел в диапазоне от –100 до 100. Помогите пожалуйста! подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 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;
};
 
Текущее время: 21:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru