2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
1

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

06.07.2016, 13:52. Показов 1733. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2016, 13:52
Ответы с готовыми решениями:

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

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

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

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

20
Заблокирован
06.07.2016, 22:29 21
Вот поправил
Вложения
Тип файла: rar ConsoleApplication2_corr.rar (11.1 Кб, 3 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2016, 22:29
Помогаю со студенческими работами здесь

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

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

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

Вызов конструктора для this в констукторе копирования
Мое почтение, уважаемые! Подскажите, пожалуйста, как вызвать конструктор для this в констукторе...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru