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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

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

02.12.2012, 18:39. Просмотров 332. Ответов 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; // Необходимо обойтись без этого
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 18:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Явный вызов и объявление статических полей (C++):

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

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

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

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

Инициализация вещественных статических константных полей класса С++ - C++
static const double x=2.15; //c double и float не инициализирует. Почему??

Объявление и вызов функций? - C++
Из двух книжек ни фига не понял как вызывать эти чёртовы функции, а без них никуда. Помогите пожалуйста. в этом примере: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2012, 13:04
Привет! Вот еще темы с ответами:

Неправильное объявление или вызов подпрограмм - C++
Приветствую Вас форумчане, помогите разобраться с кодом, недавно начал изучать с++ - вот решил накропать программку по обработке CDR-файлов...

Объявление, определение и вызов двух функций - C++
//Программа должна включать в себя: объявление, определение и демонстрацию работы через вывозов двух функций : //а) Аргументы:...

Объявление класса, создание объекта и вызов функции-члена - C++
Всем добрый день! Вот так я объявляю класс. typedef map&lt;string, double&gt; datablock; typedef map&lt;string, string&gt; groupvars; ...

явный деструктор - C++
class TIMER { public: TIMER() { std::cout &lt;&lt; &quot;constructor&quot; &lt;&lt; std::endl; } ~TIMER() { ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.12.2012, 13:04
Ответ Создать тему
Опции темы

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