- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
#include <iostream>
class base
{
virtual void on_create() { }
public:
int value;
float another_value;
void create()
{
static base test;
if(*reinterpret_cast<unsigned int *>(this) != *reinterpret_cast<unsigned int *>(&test))
{
std::cout << "please, do not override on_create()\n";
}
on_create();
}
};
class derived : public base
{
virtual void on_create(){}
};
int main(int argc, char * argv[])
{
std::cout << "base\n";
base b;
b.create();
std::cout << "derived\n";
derived d;
d.create();
}
Родилось в попытке ограничить переопределение виртуального метода.
Работает, цуко.
http://ideone.com/gUN9OA
Xom94ok 22.11.2013 17:13 # +1
bormand 22.11.2013 19:05 # +4
bormand 22.11.2013 19:42 # +3
Stertor 22.11.2013 19:43 # 0
guest 22.11.2013 22:19 # −5
Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять?
Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.