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

Оператор присваивания по умолчанию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ребят памогите решать упражнения http://www.cyberforum.ru/cpp-beginners/thread1310486.html
Вот пример и решение \sum_{i=0}^{n+m} {({i}^{2}+k)}^{2} #include <iostream> using namespace std; int main() { int n, m, k, s,i;
C++ Найти количество строк, среднее арифметическое элементов которых меньше заданной величины Дана целочисленная прямоугольная матрица. Найти количество строк, среднее арифметическое элементов которых меньше заданной величины. Помогите пожалуйста сделать код программы. http://www.cyberforum.ru/cpp-beginners/thread1310480.html
Разобрать код сдвига строки матрицы C++
Она сдвигает строки массива на k вниз. Но как это происходит в коде, не могу понять. void sdvig(float **mas, int N, int M,int k) { for(int g=0;g<k;g++) { for(int...
C++ Класс библиотека и шаблоны
Есть такой код: Library.h #ifndef LIBRARY_H #define LIBRARY_H #include <iostream> #include <queue> #include "Book.h" using namespace std; class Library {
C++ Удалить из каждой строки матрицы минимальный элемент и добавить столбцы после каждого нечётного столбца http://www.cyberforum.ru/cpp-beginners/thread1310461.html
Удалить из каждой строки минимальный элемент. Добавить столбцы после каждого нечётного столбца матрицы. Напишите пожалуйста код программы, буду очень благодарен)
C++ Поменять местами минимальный и максимальный элементы одномерного массива Здравствуйте. Помогите пожалуйста с заданием. Нужно поменять местами минимальный и максимальный элементы массива. подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
25.11.2014, 15:58
Я вначале тоже попробовал без инициализации приравнять, также всё ок.

Я, возможно, кэповскую вещь скажу, но компилятор когда не находит явно объявленного оператор присваиваний делает что-то типа этого:
C++
1
2
3
4
5
6
7
8
9
Foo& Foo::operator=(const Foo &rhs)
{
    if (this != &rhs)
    {
        // для каждого поля класса Foo
        this->поле = rhs->поле
        // или же this->поле.operator=(rhs->поле)
    }
}
Поэтому, когда в классе есть указатели на динамич. память, требуется оператор определить явно т.к. иначе он сделает
указатель lhs = указатель rhs. В итоге, два указателя будут указывать на одну и ту же область памяти и есть риск, что произойдёт ошибка с попыткой повторного освобождения памяти.

Добавлено через 1 минуту
Наверняка, стоит флаг /WX
Свойства проекта > C/C++ > Treat Warnings As Errors.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru