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

Явный вызов и объявление статических полей - C++

Восстановить пароль Регистрация
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
02.12.2012, 18:39     Явный вызов и объявление статических полей #1
1) Как сделать невозможным явный вызов деструктора и операторов?
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 MyClass
{
private :
    int _n;
 
public :
    MyClass(int number) : _n(number) {}
    ~MyClass() {}
 
    bool operator < (MyClass &x)
    {
        return _n < x._n;
    }
};
 
void main()
{
    MyClass *a = new MyClass(10), *b = new MyClass(13);
    bool comp1 = *a < *b;
    delete a, delete b;
 
    MyClass *c = new MyClass(14); c->~MyClass(); // Не должно работать
    bool comp2 = a->operator<(*c); // Не должно работать
}
2) Для того, чтобы статическое поле класса "заработало", его нужно объявить вне класса ещё раз. Как обойтись без этого?
C++
1
2
3
4
5
6
class MyClass
{
public :
static int n;
};
int MyClass::n; // Необходимо обойтись без этого
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.12.2012, 09:38     Явный вызов и объявление статических полей #2
nexen, 1) Перенести деструктор в private/protected секцию и только так.
2) Никак.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
03.12.2012, 12:56  [ТС]     Явный вызов и объявление статических полей #3
Цитата Сообщение от ForEveR Посмотреть сообщение
nexen, 1) Перенести деструктор в private/protected секцию и только так.
2) Никак.
А с оператором что делать? D:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.12.2012, 13:01     Явный вызов и объявление статических полей #4
nexen, Для чего данный изврат?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
03.12.2012, 13:04  [ТС]     Явный вызов и объявление статических полей #5
Цитата Сообщение от ForEveR Посмотреть сообщение
nexen, Для чего данный изврат?
Чтобы потешить внутреннее дитё новыми - возможно - бесполезными знаниями :3
Yandex
Объявления
03.12.2012, 13:04     Явный вызов и объявление статических полей
Ответ Создать тему
Опции темы

Текущее время: 08:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru