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

Перегрузка "operator =" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора http://www.cyberforum.ru/cpp-beginners/thread1195071.html
Всем привет! Пишу курсовик, столкнулся проблемой на самом важном пункте моей поставленной задачи: На плоскости имеется набор треугольников. Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора. Перелопатил весь интернет в поисках решения, ничего не нашёл, вообще ничего, все пишут про пересечение отрезков и останавливаются на этом. Я понял, что надо...
C++ Дебильные указатели Здравствуйте, граждане. Я начинающий программист на AcrionScript. Но в универе учу С++ и понимаю, что нужно освоить и этот язык, чтобы считать себя полноценным программистом. Но я не могу разобраться в этим дебильных указателях. В АС3 такого нет. Вот на пример, я в классе прописал приватную переменную int b, а в конструкторе записал чтоб устанавливало b = 0 - все нормально. Прописал в... http://www.cyberforum.ru/cpp-beginners/thread1195058.html
C++ Выделение памяти. Создать шаблонный класс-матрица
Я считываю с файла значения от 1 до 1000000,а потом в методе "copycolumn" копирую одну колонку из матрицы в другой массив. Программа запускается,долго выполняется и потом выдает сообщения,что там users32.dll нарушено... В чем проблема? #include "stdafx.h" #include <iostream> #include <cstring> #include <string> #include <fstream> #include <locale.h> using namespace std; #define K 1000010
C++ Односвязным списком вывод информации
Я хочу присвоить Х = 6 и вывести список что-то ничего не получается #include <iostream> #include <conio.h> using namespace std; struct number { int x; };
C++ Уборка мусора из double http://www.cyberforum.ru/cpp-beginners/thread1195039.html
Подскажите, как убрать мусор из числа типа double. Например число 13 на самом деле не 13, а 13.00000001.
C++ Ткните лицом в ошибку в коде В общем написал код для данного задания: "Задать два массива целых чисел с помощью датчика случайных чисел. Создать третий массив из индексов повторяющихся элементов исходных массивов (индексы первого массива). На экран вывести как исходные данные, так и результирующий массив." Собственно сам код: #include <iostream> #include <time.h> подробнее

Показать сообщение отдельно
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.06.2014, 13:21     Перегрузка "operator ="
Цитата Сообщение от Дъячелли Посмотреть сообщение
Ведь цикл крутится пока j строго меньше i, т.е привыходе не получается что j<i на единицу?
При чём здесь j? Память выделяется вот здесь (исходя из величины i):
C++
1
s2.str=new char[i]; // !!!
Величина i, при выходе из цикла while, будет соответствовать индексу '\0', что на единицу меньше количества символов, включая '\0'. Вот это - уже выход за границу выделенной памяти:
C++
1
s2.str[i] = '\0';
Добавлено через 23 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
String_1& String_1::operator =(const String_1 &S)
{
    if (&S == this)
        return *this;
    int i = strlen(S.str);
    delete [] str;
    str = new char[i + 1];
    strcpy(str, S.str);
    
    return *this;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru