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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
#1

Конструктор и деструктор анонимного класса - C++

23.03.2014, 21:04. Просмотров 1215. Ответов 26
Метки нет (Все метки)

Здравствуйте. Есть ли в С++ такая возможность? Очень нужна именно такая реализация класса, но если это невозможно, буду думать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2014, 21:04     Конструктор и деструктор анонимного класса
Посмотрите здесь:

Дописать конструктор и деструктор для класса - C++
Помогите пожалуйста написать конструктор копии и деструктор, а также вызвать их, чтобы деструктор выводил на экран "работает" #include...

Для класса задать конструктор и деструктор - C++
Ребята,нужна помощь в написании программы. Для класса задать конструктор(для выделения памяти,открытия файлов,задания начальных значений...

Конструктор (деструктор) у класса, не имеющего тип - C++
Можно ли объявить и определить конструктор у класса, который не имеет тип? То есть у меня в программе всего 1 экземпляр этого класса,...

Зачем нужны конструктор и деструктор класса? - C++
вот задание: Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в динамической области памяти....

Создание класса с перегрузкой операторов конструктор и деструктор - C++
Создать класс времени (Time) содержащий закрытую переменную-член хранящую целое значение времени интервала в секундах. Интерфейс класса...

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

Конструктор, деструктор - C++
Дорогие друзья, программисты. Помогите пожалуйста разобраться с конструктором и деструктором, а так же перегрузкой. Фотография прилагается...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6913 / 4106 / 936
Регистрация: 30.01.2014
Сообщений: 6,905
23.03.2014, 21:30     Конструктор и деструктор анонимного класса #2
Возможности такой нет.

Retyrn0, будет проще тебе помочь, если ты расскажешь про свою задачу.
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
23.03.2014, 22:05  [ТС]     Конструктор и деструктор анонимного класса #3
Цитата Сообщение от DrOffset Посмотреть сообщение
будет проще тебе помочь, если ты расскажешь про свою задачу.
Класс с единственным экземпляром WORLD - поэтому удобнее пользовать анонимный класс, кроме того нужно исключить возможность создания других экземпляров - это не критичное требование, но объявление нового экземпляра не имеете никакого смысла, потому что весь функционал библиотеки привязан к имени основного экземпляра. Раз возможности реализовать конструктор и деструктор анонимного класса нет, буду использовать именованный. Спасибо за помощь!

Добавлено через 1 минуту
Ещё подумываю над реализацией без ООП, хотя это менее понятно интуитивно...
DrOffset
6913 / 4106 / 936
Регистрация: 30.01.2014
Сообщений: 6,905
23.03.2014, 22:06     Конструктор и деструктор анонимного класса #4
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Класс с единственным экземпляром WORLD
Это синглтон.
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
23.03.2014, 22:22  [ТС]     Конструктор и деструктор анонимного класса #5
Цитата Сообщение от DrOffset Посмотреть сообщение
Это синглтон.
Спасибо, идея не плохая, но думаю, проще создать методы-аналоги конструктора-деструктора и вызывать их непосредственно при старте и завершении программы.
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
24.03.2014, 11:00     Конструктор и деструктор анонимного класса #6
Цитата Сообщение от Retyrn0 Посмотреть сообщение
проще создать методы-аналоги конструктора-деструктора и вызывать их непосредственно при старте и завершении программы.
то же самое ведь, что и синглетон
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
24.03.2014, 11:02     Конструктор и деструктор анонимного класса #7
Цитата Сообщение от Retyrn0 Посмотреть сообщение
проще создать методы-аналоги конструктора-деструктора и вызывать их непосредственно при старте и завершении программы
Деструктор вызывается автоматически, так что альтернатива в виде ручного вызова не проще.
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
24.03.2014, 13:42  [ТС]     Конструктор и деструктор анонимного класса #8
Цитата Сообщение от 0x10 Посмотреть сообщение
Деструктор вызывается автоматически, так что альтернатива в виде ручного вызова не проще.
Единственный экземпляр класса создаётся и уничтожается единожды - вместо автоматических конструкторов и деструкторов мне придётся дописать 2 строки кода вызова метода в начале и в конце программы. Создать другой экземпляр анонимного класса - штука "затруднительная", так что мои потребности покрываются в полной мере. Чем это сложнее синглтонов? Мне даже придумывать имя классу не придётся)

Добавлено через 3 минуты
Цитата Сообщение от aLarman Посмотреть сообщение
то же самое ведь, что и синглетон
По реализациям, которые я видел, у синглтона есть имя класса, мой анонимный. По самому определению, скорее Вы правы - мой класс ведёт себя аналогично, но именно такой реализации синглтона я не видел - поэтому не знаю. Это вопрос формулировок.
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
24.03.2014, 13:46     Конструктор и деструктор анонимного класса #9
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Мне даже придумывать имя классу не придётся)
это как? О_О
хочу увидеть Вашу реализацию
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 1
24.03.2014, 13:57     Конструктор и деструктор анонимного класса #10
Цитата Сообщение от aLarman Посмотреть сообщение
это как?
C++
1
class {...} foo;
наверное.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
24.03.2014, 13:59     Конструктор и деструктор анонимного класса #11
Что не запрещает создать несколько объектов)
C++
1
class {...} foo, bar, baz;
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
24.03.2014, 14:04  [ТС]     Конструктор и деструктор анонимного класса #12
Цитата Сообщение от aLarman Посмотреть сообщение
это как? О_О
хочу увидеть Вашу реализацию
C++
1
2
3
4
5
6
7
class
{
public:
    init(){}
    release(){}
}
WORLD;
При старте программы -
C++
1
WORLD.init();
При завершении -
C++
1
WORLD.release;
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
24.03.2014, 14:06     Конструктор и деструктор анонимного класса #13
а смысл методов init и release если класс есть глобальная переменная которая и без того создается и удаляется 1 раз
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
24.03.2014, 14:07  [ТС]     Конструктор и деструктор анонимного класса #14
Цитата Сообщение от 0x10 Посмотреть сообщение
Что не запрещает создать несколько объектов
Динамически добавлять как? Класс библиотечный и по задумке саму библиотеку менять нельзя...например, Вы же не меняете стандартные библиотеки - это беспантово)
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
24.03.2014, 14:17     Конструктор и деструктор анонимного класса #15
Ой, я ж теперь могу ссылаться на официальный FAQ: http://isocpp.org/wiki/faq/coding-standards#global-vars

Добавлено через 3 минуты
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Класс библиотечный
Ок, и как такой библиотекой пользоваться?
Чтобы обращаться к методам WORLD, нужно его объявление. В данном случае объявление и определение невозможно разделить. Подключаем в два разных файла - и выхватываем ошибку линковки, потому что в двух единицах трансляции появляются глобальные объекты с одинаковыми именами.
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
24.03.2014, 14:50  [ТС]     Конструктор и деструктор анонимного класса #16
Цитата Сообщение от 0x10 Посмотреть сообщение
Подключаем в два разных файла
Не понял что подключаем? Библиотеку? - Для этого есть препроцессор.

Добавлено через 6 минут
Получается, что объект WORLD глобальный, а вот создать такой же объект не из библиотеки не получиться - класс анонимный - как раз то, что мне нужно. В библиотеке есть класс и функции инициализации всего и освобождения. Т.е. при использовании библиотеки нужно подключить её, запустить Init() и по завершении запустить Release(). А всё необходимое сделает сама библиотека.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
24.03.2014, 15:01     Конструктор и деструктор анонимного класса #17
А проверьте-ка у себя такой пример.
Библиотека:
C++
1
2
3
4
5
6
7
// File World.h
#pragma once
 
class {
public:
    int n;
} WORLD;
Программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// File main.cpp
#include "World.h"
 
#include <iostream>
 
void g();
 
int main()
{
    WORLD.n = 10;
    std::cout << "main: " << WORLD.n << std::endl;
    g();
}
C++
1
2
3
4
5
6
7
8
9
// File app.cpp
#include "World.h"
 
#include <iostream>
 
void g()
{
    std::cout << "app: " << WORLD.n << std::endl;
}
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
24.03.2014, 15:54  [ТС]     Конструктор и деструктор анонимного класса #18
Цитата Сообщение от 0x10 Посмотреть сообщение
А проверьте-ка у себя такой пример.
Я намёк понял, но я использую единственный .cpp, а c множеством .h всё работает как надо.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
24.03.2014, 15:55     Конструктор и деструктор анонимного класса #19
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Я намёк понял, но я использую единственный .cpp
Это частный случай, и полагаться на то, что так будет и дальше - не стоит.

Решение некорректно. Больше тут нечего говорить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2014, 16:12     Конструктор и деструктор анонимного класса
Еще ссылки по теме:

Конструктор и деструктор - C++
На сколько сильно они нужны и можно ли обойтись без них? Что будет если их не описывать? Что такое утечки памяти? Память забивается...

С++. Конструктор, деструктор - C++
Ребята!!! Помогите пожалуйста, не знаю как сделать это задание на С++. Нужно разработать класс Point для работы с пользовательским...

Конструктор и деструктор - C++
Нужно чтобы деструктор отработал до завершения программы #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstring&gt; #include...

Конструктор и деструктор - C++
Помогите к этой программе написать Конструктор и деструктор класса #include &lt;iostream&gt; using namespace std; class card { ...

Конструктор/деструктор - C++
Подскажите пожалуйста как внедрить в вот эту программу конструктор и деструктор... В программе есть базовый класс (летательные аппараты)...


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

Или воспользуйтесь поиском по форуму:
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
24.03.2014, 16:12  [ТС]     Конструктор и деструктор анонимного класса #20
Цитата Сообщение от 0x10 Посмотреть сообщение
Это частный случай
Иных случаев не предвидится.
Если мне взбредёт в голову осуществить общедоступную реализацию, обязательно воспользуюсь советами, но пока я пишу библиотеку для себя, и мне одного срр более чем достаточно.

Вопрос был о конструкторе и деструкторе анонимного класса - я понял, они в с++ невозможны.
Спасибо огромное за ответы!
Yandex
Объявления
24.03.2014, 16:12     Конструктор и деструктор анонимного класса
Ответ Создать тему
Опции темы

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