Форум программистов, компьютерный форум 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 (необходимо ускорить любым доступным способом) Есть алгоритм шифрования дес, он работает но работает медленно ну или скажем так ... недостаточно быстро для того чтобы препод его принял. Посоветуйте как можно ускорить его в каком-либо месте. Часть функций я не привожу так как я уверен что там оптимизировать нечего либо оптимизация не даст прироста потому что эти функции всё равно выполняются один раз. //блок чтобы облегчить выделение... подробнее

Показать сообщение отдельно
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
14.01.2013, 17:27     Виртуальный замок
Цитата Сообщение от go Посмотреть сообщение
Там конструктор Lock не вызывается, значит он приватный
Если что-то не вызывается, это еще не значит, что оно приватное. Кстати, конструктор Lock вызывается, но об этом ниже.

Приватным или публичным что-то может быть объявлено.
Так в языке С++ поля и методы класса (любом класса) объявляются приватными, если не указано обратное с помощью ключевого слова public.
Пример.
C++
1
2
3
4
class Lock {
    Lock() { }                 // приватный конструктор
    Lock(const Lock&) { } // приватный конструктор копирования
};
но
C++
1
2
3
4
5
class Lock {
 public: // вот из-за этого ключевого слова
    Lock() { }                 // публичный конструктор
    Lock(const Lock&) { } // публичный конструктор копирования
};
Помните, что при создании объекта вызываются конструкторы по-умолчанию всех родительских типов перед вызовом конструктора создаваемого объекта.
Пример выведет A B.
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
#include <iostream>
 
class A {
 public:
  A() {
    std::cout << "A" << std::endl;
  }
};
 
class B : public A {
 public:
  B() {
    std::cout << "B" << std::endl;
  }
};
 
 
int main(int argc, char *argv[]) {
 
  B b;
 
  std::cin.peek();
  return 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
25
26
#include <iostream>
 
class A {
 public:
  A() {
    std::cout << "A" << std::endl;
  }
};
 
class B : private A {
 public:
  B() {
    std::cout << "B" << std::endl;
  }
};
 
 
int main(int argc, char *argv[]) {
  srand(time(0));
 
  B *b = new B();
  A *a = b; // фейл, наследование B от А скрыто, "A is an inaccessible base of B" 
 
  std::cin.peek();
  return 0;
}
Добавлено через 6 минут
Ах да, вот еще.
Наследоваться от залоченного таким образом класса можно. Его инстанцировать не выйдет.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru