Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72

Реализация конструктора копирования для класса

06.07.2016, 13:52. Показов 2970. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
P.S плохо с русским

Этот конструктор копирования сломал мне мозг
И вот что я понемаю когда мы делаем так
C++ (Qt)
1
foo objCopy(obj);
то из obj копируется все в objCopy и есль там выделена память то теперь у нас 2 указателя на один участок память и при вызове деструктора он постарается удалить 2 раза один и тотже участок паметь что преведет к ощибке
OK теперь почему вот этот код , мой код не работает

Header.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef STACK_H_
#define STACK_H_
 
#include <iostream>
#pragma warning(disable : 4996)
 
using namespace std;
 
class foo
{
    char *str;
    int len;
    static int number;
public:
    foo(const foo&);
    foo();
    void get();
    ~foo();
};
 
#endif
Source.cpp

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "Header.h"
 
int foo::number = 0;
foo::foo()
{
    cout << "Simple Constructor\n";
}
foo::foo(const foo &st)
{
    len = strlen(st.str);
    str = new char[len+1];
    strcpy(str,st.str);
    number++;
    cout << str << endl;
}
void foo::get(){cin>>str;}
foo::~foo()
{
    cout << number-- << endl;
    delete [] str;
}
ConsoleApplication2.cpp

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
 #include "Header.h"
 
int main()
{
    foo f1;
    f1.get();
    foo f2 = f1;
 
 
    system("pause");
    return 0;
}
А вот и сама ощибка

Код в картинах




Проясните пожалуиста?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.07.2016, 13:52
Ответы с готовыми решениями:

Реализация конструктора копирования для двумерного динамического массива
Практически реализовал, не понимаю, почему не получается... #include &lt;iostream&gt; #include &lt;time.h&gt; using namespace std; ...

Определение конструктора копирования для производного класса
Как написать определение конструктора копирования для производного класса, а именно копировании части базового класса из одного...

Реализация конструктора копирования и перегрузки =
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; class Cow{ private: char name; char *...

20
Заблокирован
06.07.2016, 22:29
Студворк — интернет-сервис помощи студентам
Вот поправил
Вложения
Тип файла: rar ConsoleApplication2_corr.rar (11.1 Кб, 3 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2016, 22:29

Переопределение конструктора копирования абстрактного класса, на клонирование дочерних объектов
Здравствуйте. Помогите решить следующую проблему. Есть абстрактный класс Object, у которого есть метод AddChild(Object* child)...

Реализация конструктора класса
Здравствуйте! Хотел задать такой вопрос: Предположим, имеется класс: class Object { private: int itsVal1; int...

Std::vector добавить новый элемент собственного класса без использования конструктора копирования
Всем привет! Есть один класс, который я хочу хранить в std::vector. Создать массив, с типом своего класса, грубо говоря. Естественно,...

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать?
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и какой плюс от использования перемещающего...

Вызов конструктора для this в констукторе копирования
Мое почтение, уважаемые! Подскажите, пожалуйста, как вызвать конструктор для this в констукторе копирования: template&lt;class Data&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru