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

Класс, каждый экземпляр которого имеет поле UID с гарантированно уникальным значением - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать АТД “Очередь” на основе усовершенствованного циклического массива http://www.cyberforum.ru/cpp-beginners/thread1118744.html
Прошу помочь с написанием решения для данной задачи: Создайте реализацию АТД “очередь” на основе усовершенствованного циклического массива, который автоматически увеличивает размер вдвое при переполнении, подобно вектору. Все остальные характеристики циклического массива должны быть сохранены. Продемонстрируйте работоспособность решения при помощи тестовой программы. Заранее благодарен.
C++ Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт Нужно открыть бинарный файл и закодировать следующим образом. Взять 7 байт. Первый бит каждого байта переместить в 8 байт. То есть, например: 10101010 01010110 00001100 00011000 00011000 00000111 00011100 Нужно превратить в: 0101010 http://www.cyberforum.ru/cpp-beginners/thread1118740.html
C++ Записать программу, выводящую изображенную фигуру
Пользователь вводит некий символ. Записать программу, выводящую изображенную на рис. 2.10 фигуру, где вместо символа «*» должен быть символ, введенный пользователем. ***** ** * ** *****
UrlDecode, Работа с кириллицей C++
Сам пишу на C#. Тут возникла задача "общания с прогой", написанной в С++ 6.0. Проблема возникла с передачей данных с русским текстом (как есть работает, но надо шифровать, поэтому заворачиваю в Base64, который как раз и неработает), при отсылке параметров решил кодировать в urlcode (например...
C++ Координаты вектора умножить на число http://www.cyberforum.ru/cpp-beginners/thread1118704.html
вот есть класс, мне нужно координаты вектора умножить на число,через функцию используя прототип.Как это сделать ? Функцию в С++ еще не проходили, сказали делать по подобию Си #include "stdafx.h" #include "iostream" using namespace std; class Vektor { public:
C++ Калькулятор в столбик Возникла проблема не понимаю почему при умножении 567 * 900 = 50103, (программа недробляна поэтому можно только умножать одинаковые цифры по количеству а точнее показывать цифры для сложение) void Multiplication_Of_Numbers() { int i = 0,j,o=0,tum=0,k0=0,sum; while (number.x>0) { number.mas = number.x % 10;number.x /= 10;//разъединяет числа (nnn на n,n,n) } подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
14.03.2014, 10:47     Класс, каждый экземпляр которого имеет поле UID с гарантированно уникальным значением
Я бы сделал так:
1. закрыл (private) все создающие конструкторы, вместо них в интерфейсе должны быть явно вызываемые функции типа create(...) или create_dynamic(...). Они возвращают уже готовый объект (или указатель на него).
2. конструкторы копирования, перемещения и оператор= - открытые.
3. ну и этот UID - что-то типа GUID'а, 128 бит вроде должно хватить на обозримый период времени Но если мало - можно и 256 бит забабахать. Функция генерации нового уникального UID вызывается только при создании нового объекта, но не при копировании существующего. А создание нового объекта в силу п.1 можно сделать только явным вызовом функции create.

Какие "дыры" могут оказаться в реализации такой схемы?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru