187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
1

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

02.12.2012, 18:39. Показов 765. Ответов 4
Метки нет (Все метки)

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; // Необходимо обойтись без этого
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2012, 18:39
Ответы с готовыми решениями:

Явный вызов конструктора
Всем привет. Есть примерно такой код: 1. Мой класс class my_class { // ... }; 2....

Явный вызов деструктора
Добрый вечер всем! Я раньше читал статью о деструкторах, и там говорилось что можно явно вызвать...

Явный вызов деструктора
Есть класс Person, с полями string,string,long. Исходные данные хранятся в файле. Нужно сделать...

Явный вызов перегрузки
Всем привет, можно ли как-то указать ораклу явно какую перегрузку использовать?

4
В астрале
Эксперт С++
8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.12.2012, 09:38 2
nexen, 1) Перенести деструктор в private/protected секцию и только так.
2) Никак.
1
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
03.12.2012, 12:56  [ТС] 3
Цитата Сообщение от ForEveR Посмотреть сообщение
nexen, 1) Перенести деструктор в private/protected секцию и только так.
2) Никак.
А с оператором что делать? D:
0
В астрале
Эксперт С++
8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.12.2012, 13:01 4
nexen, Для чего данный изврат?
1
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
03.12.2012, 13:04  [ТС] 5
Цитата Сообщение от ForEveR Посмотреть сообщение
nexen, Для чего данный изврат?
Чтобы потешить внутреннее дитё новыми - возможно - бесполезными знаниями :3
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2012, 13:04
Помогаю со студенческими работами здесь

Явный вызов конструкторов перемещения
Для перемещения предлагается такая запись: TYPE a; TYPE b = std::move(a); Но при этом, если у...

Объявление статических констант шаблонных классов
Что-то я туплю - дан шаблонный класс, принимающий в качестве аргументов шаблона типы Type1 и Type2....

Явный вызов оператора или функции доступа невозможен (xNet & Fleck)
Добрый день, форумчане. Нарыл небольшой проект Steam trade botа'а, но в нём имеются несколько...

Инициализация статических полей
Ковыряю legacy код, возможно нубский вопрос:( Есть глобальный класс со статическими полями и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru