Здравствуйте, nxt, Вы писали:
nxt>Например можно объявить класс без имени и сразу создать экземпляры его объектов.
nxt>Как для такого класса задать конструктор и деструктор?)
Как звучит хлопок одной ладонью?
Re[2]: Как задать конструктор для класса без имени?
Здравствуйте, Centaur, Вы писали: C>Как звучит хлопок одной ладонью?
"Хлопок одной ладони"
Учителем храма Кеннин был Мокурай, Молчащий Гром. У него был маленький протеже по имени Тойо, которому было только 12 лет.
Тойо видел, как каждое утро и вечер более старшие ученики приходили в комнату учителя для получения общих инструкций по Сан-Дзен или для персонального обучения, при котором задавались коаны для того, чтобы освободить ум от заблуждений.
Тойо тоже захотел выполнять Сан-зен.
"Подожди немного,- сказал Мокурай, — ты еще молод."
Hо ребенок настаивал, так что учитель, наконец, был вынужден согласиться. Вечером в соответствующее время, маленький Тойо подошел к порогу комнаты Мокурая ля Сан-Дзен.
Он ударил в гонг, чтобы сообщить, что он пришел, три раза поклонился перед дверью в знак уважения, вошел и сел перед учителем в почтительном молчании.
"Ты можешь услышать хлопок двух ладоней, когда они ударяются друг о друга,- сказал Мокурай. — Теперь покажи мне хлопок одной ладони."
Тойо поклонился и пошел в свою комнату, чтобы рассмотреть эту проблему.
Из окна он услышал музыку гейш.
"Ах, я понял!"- воскликнул он.
На следующий вечер, когда учитель попросил его показать хлопок одной ладони, Тойо начал играть музыку гейш.
"Hет, нет,- сказал Мокурай,- это никак не подойдет. Это не хлопок одной ладони. Ты совсем не понял его."
Думая, что музыка будет мешать, Тойо ушел в более спокойное место. Он снова погрузился в медитацию.
"Чем же может быть хлопок одной ладони?"
Он услышал как капает вода.
"Я понял",- подумал Тойо.
Оказавшись перед учителем в слеующий раз, Тойо начал капать водой.
"Что это ?"- спросил Мокурай. — Это звук капающей воды, но не хлопок ладони. Попробуй еще раз."
Hапрасно Тойо медитировал, чтобы услышать хлопок одной ладони. Он услышал шум ветра, но и этот звук был отвергнут. Он услышал крик совы, но и этот звук был отвергнут.
Более чем 10 раз приходил Тойо к Мокураю с различными звуками, все было неправильно.
Почти год обдумывал он, что же может быть хлопком одной ладони. Hаконец, маленький Тойо достиг подлинной медитации и перешел пределы звуков. "Я больше не мог собирать их,- объяснил он позже,- поэтому я достиг безупречного звука."
Тойо реализовал хлопок одной ладони.
Здравствуйте, nxt, Вы писали:
nxt>Например можно объявить класс без имени и сразу создать экземпляры его объектов.
nxt>class nxt>{ nxt> int a; nxt> int b; nxt>} ob1, ob2;
nxt>Как для такого класса задать конструктор и деструктор?)
class
{
int a,b;
} ob1 = { 1, 2 }, ob2 = { 3, 4 };
Re[2]: Как задать конструктор для класса без имени?
Здравствуйте, nxt, Вы писали:
nxt>Например можно объявить класс без имени и сразу создать экземпляры его объектов. nxt>class nxt>{ nxt> int a; nxt> int b; nxt>} ob1, ob2; nxt>Как для такого класса задать конструктор и деструктор?) Зачем?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, nxt, Вы писали:
nxt>Например можно объявить класс без имени и сразу создать экземпляры его объектов.
nxt>class nxt>{ nxt> int a; nxt> int b; nxt>} ob1, ob2;
nxt>Как для такого класса задать конструктор и деструктор?)
Anonymous classes are subject to certain restrictions. Anonymous classes:
— Cannot have a constructor or destructor.
— Cannot be passed as arguments to functions (unless type checking is defeated using ellipses).
— Cannot be returned as return values from functions.
Re[2]: Как задать конструктор для класса без имени?
Здравствуйте, Vain, Вы писали:
V>Зачем?
Хмм, а оно (struct Dummy { Dummy() { ... } ... } dummy; ) легально или будет легально в C++0x? На codepad (4.1.2), как было показано выше, работает, 4.5.1 не ест с сообщением:
error: non-local function '<anonymous struct>::Dummy::Dummy()' uses anonymous type
Здравствуйте, Vain, Вы писали: V>Здравствуйте, nxt, Вы писали: nxt>>Например можно объявить класс без имени и сразу создать экземпляры его объектов. nxt>>class nxt>>{ nxt>> int a; nxt>> int b; nxt>>} ob1, ob2; nxt>>Как для такого класса задать конструктор и деструктор?) V>Зачем?
Даешь мастер класс
Детям до 18-ти не смотреть
#include <stdio.h>
int main()
{
struct
{
int i;
int j;
struct Dummy
{
Dummy(void* p)
{
unsigned char* obj = static_cast<unsigned char*>(p);
int i = *reinterpret_cast<int*>(obj + 0);
int j = *reinterpret_cast<int*>(obj + 4);
printf("хлопок одной ладонью i - %d, j - %d\n", i, j);
}
} dummy;
} boom = { 1 , 2, &boom }, boom2 = { 3, 4, &boom2 };
}
Здравствуйте, Ops, Вы писали:
Ops>Здравствуйте, _nn_, Вы писали:
Ops>А теперь возьмем другой компилятор, другую архитектуру, или просто поменяем упаковку.
Ну или встретит Вас человек, поддерживающий Ваше творение в темном переулке.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[5]: Как задать конструктор для класса без имени?
Здравствуйте, Ops, Вы писали:
Ops>Здравствуйте, Ops, Вы писали:
Ops>>Здравствуйте, _nn_, Вы писали:
Ops>>А теперь возьмем другой компилятор, другую архитектуру, или просто поменяем упаковку.
Ops>Ну или встретит Вас человек, поддерживающий Ваше творение в темном переулке.
Ну так я не сказал, что это переносимо.
Или это было не понятно ?
Здравствуйте, VladFein, Вы писали:
VF>Почему он поддерживает это творение в темном переулке???
Потому, что на свет его показывать страшно
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Как задать конструктор для класса без имени?
Здравствуйте, B0FEE664, Вы писали: BFE>Здравствуйте, VladFein, Вы писали: nxt>>>Как для такого класса задать конструктор и деструктор?) VF>>Anonymous Class Types VF>>
VF>>Anonymous classes are subject to certain restrictions. Anonymous classes:
VF>>- Cannot be returned as return values from functions.
BFE>Врут: BFE>
BFE>class { public: int m; } f(int n) { return f(0); }
BFE>int main (int argc, char * argv[])
BFE>{
BFE> f(0).m = 1;
BFE> return 0;
BFE>}
BFE>
BFE>Компилируется и даже линкуется.
А вы так не делайте.
Re[4]: Как задать конструктор для класса без имени?
Здравствуйте, gegMOPO4, Вы писали:
BFE>>Врут: BFE>>Компилируется и даже линкуется. MOP>А вы так не делайте.
MS VS 2005
Microsoft (R) 32 bits C/C++ version 14.00.50727.762
Честно.
И каждый день — без права на ошибку...
Re[3]: Как задать конструктор для класса без имени?
Здравствуйте, B0FEE664, Вы писали: BFE>Здравствуйте, gegMOPO4, Вы писали: BFE>>>Врут: BFE>>>Компилируется и даже линкуется. MOP>>А вы так не делайте. BFE>MS VS 2005 BFE>Microsoft (R) 32 bits C/C++ version 14.00.50727.762 BFE>Честно.
Компилятор Microsoft издавна славился снисходительностью к некоторым вещам, которые потом приходилось лопатой выгребать при портировании.