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

Оператор присваивания. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Замена первых элементов каждой строки квадратной матрицы на сумму элементов этой строки http://www.cyberforum.ru/cpp-beginners/thread425842.html
Замена первых элементов каждой строки квадратной матрицы на сумму элементов этой строки
C++ Последовательности Помогите, пожалуйста, разобраться с программой. Готов выслушать предложения откликнувшихся. Форум - не место для обмена контактами. Хотите бесплатной помощи - будьте готовы к тому, что она будет публичной. http://www.cyberforum.ru/cpp-beginners/thread425820.html
Функция декремента C++
Вот функция которая декрементирует время, если в коде написать 59, то работает, но вот когда отнимаешь какое то кол - во секунд, например 00:00:00 (час:минута:секунда) - 20 секунд получается 23:59:39, если вместо 59 написать 60, то работает, но декремент получается на 1 меньше чем надо. Как можно по другому написать? Подскажите void MyTime::Prev() { if (hour == 0) ...
C++ Считывание с файла
Здравствуйте. Нужна помощь в написании программы: Дана непустая последовательность слов разделенных пробельными символами, расположенных в некотором файле. Напечатать эти слова в следующем порядке: Сначала по алфавиту все однобуквенные слова, потом по алфавиту двухбуквенные и т.д. Одинаковые слова печатать по одному разу. Заранее спасибо)
C++ Нужен пример хэширования http://www.cyberforum.ru/cpp-beginners/thread425769.html
Здравствуйте! Ни как не могу понять хэширование,если не трудно, то напишите какие нибудь простейшие примеры реализации. Заранее благодарю!
C++ Заменить все значения элементов матрицы нулями, значения которых меньше числа k Дан двумерный массив n*m и число k. Значения элементов вводятся с клавиатуры. С клавиатуры вводится число k. Заменить все значения элементов массива нулями, значения которых меньше числа k. подробнее

Показать сообщение отдельно
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
10.01.2012, 23:27     Оператор присваивания.
Можно открыть наконец книжку и прочитать о том, что такое объекты и как это работает. Предположим у нас есть какой-то такой класс строки:
C++
1
2
3
4
5
6
7
class String
{
public:
    size_t len;
    char *str;
    ...
};
Собственных данных у него только указатель на строку символов и её длина. При использовании стандартного конструктора копирования мы получим, что указатели в обоих объектах будут ссылаться на один и тот же кусок памяти. Чтобы этого избежать, напишем собственный конструктор копирования, который будет делать копии массива символов:
C++
1
2
3
4
5
6
7
8
9
String& String::operator = (const String& s)
{
    if (this != &s)
    {
        str = new char[s.len];
        memcpy(str, s.str, s.len);
    }
    return *this;
}
 
Текущее время: 13:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru