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

Как запретить присваивание? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Виснет длл http://www.cyberforum.ru/cpp-beginners/thread602781.html
Всем привет. Сорри если не туда. Есть некая библиотека mouse.dll, которая имитирует человеческие движения, к библиотеке одновременно обращается несколько приложений. Так вот все правильно работает, только dll стабильно зависает через 3 - 40 минут без загрузки проца. Никто не подскажет где может быть косяк? Буду рад любым идеям, заранее спасибо. / mousedll.cpp : Defines the entry point for the...
C++ как удалить из строки пробелы либо массив char либо string как вам угодно помогите пожайлуста http://www.cyberforum.ru/cpp-beginners/thread602779.html
C++ Функция корректировки, не знаю как она объявляется и как ее написать
#include <fstream.h> #include <string.h> #include <conio.h> #include <iomanip.h> #include <stdlib.h> #include <io.h> #define FIO 20 #define DATA 6 #define PASPORT 10 #define NOMER 12
глюк с определениями C++
вот файл unit.h #ifndef __unit_h__ #define __unit_h__ const int MAXHELF=100; struct FPOINT { float x; float y; };
C++ Реализовать алгоритм работы с динамической структурой данных – однонаправленный список http://www.cyberforum.ru/cpp-beginners/thread602753.html
Нужно срочно решение задачки!! Помогите, кто может!!!! Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и просматриваются с конца списка, а удаляются с начала списка. Элементы списка – натуральные числа.
C++ nullptr в codeblocks Поддерживается ли? Как подключить? подробнее

Показать сообщение отдельно
Bers
Заблокирован
11.06.2012, 16:05     Как запретить присваивание?
Цитата Сообщение от taras atavin Посмотреть сообщение
Как лучше запретить присваивание? Заприватить оператор и не делать его реализацию? Или как?
Если объявить, но не определить - в любом случае operator= станет не доступным (ошибка компиляции, либо компоновки)

Но определять его приватным будет уже не обязательно по целому ряду причин:
1. Такую защиту легко обойти (особенно, если ты извращенец, который любит усложнять жизнь себе и другим)

2. То, чего быть не должно - не должно быть в принципе. Если присваивать нельзя, то и метод создавать не нужно. Ибо зачем?

3. В студии можно ничайно запустить приватный operator=
(только в некоторых случаях: Баг компилятора? Или я чего то не догоняю? )


Другой способ: объявить константный член данных. Константы должны быть инициализированы в момент создания. Компилятор уже не сумеет построить дефолтный operator=
Но от такой практики вреда больше, чем пользы.

Добавлено через 40 секунд
Цитата Сообщение от diagon Посмотреть сообщение
Унаследоваться от boost::noncopyable, как вариант.
Вы не путаете operator= и копирующий конструктор?
 
Текущее время: 13:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru