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

Что такое конструктор копий? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция для удаления слова из строки http://www.cyberforum.ru/cpp-beginners/thread661777.html
Доброго времени суток, господа! Столкнулся с проблемой написания функции для удаления слова из строки. До этого приходилось удалять лишь лишние пробелы, делал это следующим образом...
C++ Написать обработчик для класса Vector, который будет ловить следующие ошибки: Дано задание: Написать обработчик для класса Vector, который будет ловить следующие ошибки: 1. невозможность выделения памяти, причем выводилась информация именно в том методе, в котором не ... http://www.cyberforum.ru/cpp-beginners/thread661776.html
Двумерный массив. Найти наименьший элемент матрицы. Напечатать его индексы C++
Найти наименьший элемент матрицы. Напечатать его индексы. Добавлено через 40 секунд помогите пожалуйста
Классы. Объекты. Методы C++
Доброго времени суток! Вот задачка. Я пока начинающий в этом деле, так что не очень понятно... Создать класс "дата". Данные класса должны быть представлены тремя полями: числом, месяцем и годом...
C++ Поменять местами элементы матрицы http://www.cyberforum.ru/cpp-beginners/thread661759.html
Работа с квадратными массивами В задаче рассматривается двумерный массив с одинаковым количеством строк и столбцов; такой массив называют квадратным. Задача: В квадратном массиве из n строк,...
C++ Прошу сказать, правильно ли я решил, и , если не правильно, то указать ошибки Есть задачка \sum_{i=0}^{8}\sum_{j=0}^{10}\sum_{k=0}^{3}\left(\frac{i+3k-4j}{2+3i+4j} \right) и есть мой код (сразу говорю, я очень плох в программировании:) )- #include<iostream> using... подробнее

Показать сообщение отдельно
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.10.2012, 21:19
Кстати, в вашем коде из 12 поста, вообще не работает конструктор копирования. Там не понятно, что работает, из-за того, что объект содержит указатель, на строковую лексему в статической памяти. Чтобы нормально всё работало, нужно так переписать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <string>
#include <iostream>
using namespace std;
 
class vertu
{
    public:
     vertu() : ival(0), str(new string)
     {}
     
     vertu(const vertu &copy) 
     {
        ival = copy.ival;
        str = new string;
        *str = *copy.str;
    }
     
     int ival;
     string* str;
     
     void operator()(int a, string* s)
     {
        ival = a;
        str = new string;
        *str = *s;
     } 
    
    ~vertu()
    {
        delete str;
    }  
};
 
int main()
{
    vertu vert;
    int k(10);
    string sk("Papapap");
    
    vert(k, &sk);
    cout << vert.ival << " " << *vert.str << endl;
    
    vertu vert2(vert);
    cout << vert2.ival << " " << *vert2.str << endl;
 
    cin.get();
    return 0;
 }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru