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

Виртуальный замок - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ваше профессиональное мнение http://www.cyberforum.ru/cpp/thread752437.html
Здравствуйте! Очень нужно ваше профессиональное мнение и опыт, а ещё лучше преподавательский опыт. Хочу основательно подготовиться к экзамену. Экзамен по системному программному обеспечению. Подскажите пожалуйста, что обязательно нужно знать по вот этим темам: 1. Системное программное обеспечение. Классификация. 2. Виртуальные машины: архитектура, достоинства и недостатки. 3. Реализация...
C++ Шифрование и обфускация принимается за вирус? Дело вот в чем. Есть программа, при проверке которой онлайн антивирус и антивирус на компе утверждают, что скачивание не безопасно. Но сам создатель говорит, что антивирусники тупят, потому что он зашифровал код, а также ссылается на обфускацию. При проверке онлайн выводит infected with BackDoor.XtremeRat.3. Может такое быть или там на самом деле вирус и он просто разводит? Сейчас показывает,... http://www.cyberforum.ru/cpp/thread752256.html
C++ Выбор языка программирования
Здравствуйте! Вопрос не в тему. Просто не знал в какой раздел написать. Необходимо создать программу для создания и расчета смет. Подскажите пожалуйста какой язык программирования более всего подходит для реализации программ данного типа?
C++ Тема для магистерской работы
Всем привет. Можете помочь выбрать тему для магистерской работы. Если можно что нибуть связанное с C++. Заранее спасибо.
C++ Распределенное программирование на С++ http://www.cyberforum.ru/cpp/thread742174.html
Всем привет. Хочу создать библиотеку как STL, но для распределенных систем (магистерская работа). Нужно сделать нечто, что до меня не было сделано. В инете не нашел оканчателной работы по этой теме. кто что знает - что сделано, а что не сделано? Тема достойная для магистерской работы? Заранее спасибо.
C++ Алгоритм шифрования DES (необходимо ускорить любым доступным способом) Есть алгоритм шифрования дес, он работает но работает медленно ну или скажем так ... недостаточно быстро для того чтобы препод его принял. Посоветуйте как можно ускорить его в каком-либо месте. Часть функций я не привожу так как я уверен что там оптимизировать нечего либо оптимизация не даст прироста потому что эти функции всё равно выполняются один раз. //блок чтобы облегчить выделение... подробнее

Показать сообщение отдельно
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.01.2013, 13:35     Виртуальный замок
Доброе утро!
Возникла такая проблема. Допустим, я хочу запретить наследоваться от своего класса другим классам и получить ошибку компиляции(но не пряча при этом конструктор и деструктор в приватную секцию, и не используя С++11).
Для этого я пишу виртуальный замок (virtual lock)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Lock
{
    friend class Foo;
    Lock() { }
    Lock(const Lock&) { }
};
 
class Foo: virtual private Lock
{
 
};
 
class Bar: public Foo
{
 
};
 
int main()
{
    Foo foo;
    Bar bar;
    return 0;
}
http://liveworkspace.org/code/4iyvka$0
Как видим все нормально. Точнее код не скомпилировался, все как мы хотели.

Но вот я немного переделал этот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Lock
{
public:
    //friend class Foo;
    Lock() { }
    Lock(const Lock&) { }
};
 
class Foo: virtual private Lock
{
 
};
 
class Bar: public Foo
{
 
};
 
int main()
{
    Foo foo;
    Bar bar;
    return 0;
}
http://liveworkspace.org/code/3GKSYm$0
И он почему-то скомпилировался.

В чем принципиальное различие в этих двух кодах? Подскажите, пожалуйста, что я упускаю...

Добавлено через 5 минут
Т.е. в моем втором примере по прежнему конструктор Lock доступен только Foo.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Lock
{
public:
    //friend class Foo;
    Lock() { }
    Lock(const Lock&) { }
};
 
class Foo: virtual private Lock
{
 
};
 
class Bar: public Foo
{
public:
   Bar()
      :  
      //Lock(),
      Foo()
   {
      
   }
 
};
 
int main()
{
    Foo foo;
    Bar bar;
    return 0;
}
Если раскоментировать вызов конструктора Lock из Bar, то получим ошибку. http://liveworkspace.org/code/4l9OVk$0
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru