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

Конструктор копирования производных классов: для чего это нужно? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как избавиться от округления float http://www.cyberforum.ru/cpp-beginners/thread1807896.html
#include <iostream> using std:: cin; using std:: cout; using std:: endl; int main() { cout << "123.008 + 0.0008 = " << 123.008 + 0.0008 << endl; // == 123.009, а нужно 123.0088 return 0; }
C++ Программерский сленг: что означает "кастомный" и "кастить"? что есть "кастомный" и "кастить" ? http://www.cyberforum.ru/cpp-beginners/thread1807860.html
Объяснить, что происходит в заданном фрагменте кода (шифр Цезаря) C++
#include <iostream> #include <string> #include <conio.h> #include <stdlib.h> #include <sstream> #include <fstream> using namespace std; int main() {
Метод простых итераций и Зейделя в СЛАУ C++
имеется программа, которая 3-мя способами решает СЛАУ. а именно: матричный, крамер, Гаусс. Не могу понять саму суть метода простых итераций и Зейделя, нужно сделать их как 2 способа. помогите. желательно продолжение программы в таком же простом виде. должно быть 5 подпрограмм в программе. уже есть 3, осталось 2, помогите пожалуйста #include "stdafx.h" #include "iostream" #include <string>...
C++ Компилятор выдает странный ответ http://www.cyberforum.ru/cpp-beginners/thread1807792.html
#include <iostream> int main() { std::cout << "Введи 2 числа" << std::endl; int x = 0, y = 0; std::cin >> x >> y; std::cout << "Сумма " << x << " и " << y << " равна " << x + y << std::cout; return 0; }
 

Показать сообщение отдельно
hoggy
5605 / 2235 / 411
Регистрация: 15.11.2014
Сообщений: 5,027
Завершенные тесты: 1
15.09.2016, 22:46     Конструктор копирования производных классов: для чего это нужно?
Цитата Сообщение от avgoor Посмотреть сообщение
Во первых: Неявно определенный конструктор копирования не почленный, а побитовый.
ложь.
именно что почленный.

Добавлено через 7 минут
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Побитовое только для фундаментальных типов
правила едины для любых типов.
и фундаментальные здесь не исключение.
как именно это реализует компилятор - не принципиально.

принципиально, что запись вида:
C++
1
2
T obj1;
T obj2 = obj1; //<--- copy ctor
есть вызов конструктора копии вне зависимости от возможных оптимизаций,
и вне зависимости от того, чем на самом деле является T

вы обязаны воспринимать вызов конструктора копии,
именно как вызов конструктора копии.

а не рассуждать на тему:
"а вдруг там окажется примитивный тип,
а у них конструкторы копии фиктивные...

а в друг там оптимизация сработает,
и по факту вообще не будет никакого копирования?"

и тп
 
Текущее время: 20:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru