#define ClassDef class {}
typedef ClassDef MyClass;
int main() {
ClassDef class0;
MyClass* class1 = new MyClass;
MyClass* class2 = new ClassDef; // error: types may not be defined in a new-type-id
}
Так же интересно, возможно ли как в джаве создать анонимный наследованный класс и сразу определить в нем методы Вместо этого:
class Something { public: virtual void run() = 0; };
void run(Something* s) { s->run(); }
int main() {
class : public Something { void run() {} } MyClass;
run(&MyClass);
}
Сделать как-то так:
class Something { public: virtual void run() = 0; };
void run(Something* s) { s->run(); }
int main() {
run(new class : public Something { void run() {} });
}
Может вас заинтересуют лямды?
class Manager {
typedef std::function<void()> Runner;
void add(const Runner& runner) {
runners.push_back(runner);
}
void execute() {
for (r : runners) {
r();
}
}
std::list<Runner> runners;
};
int main(...) {
...
Manager mgr;
...
mgr.add([]() { /* do something */})
...
SomeVar someVar;
...
mgr.add([someVar]() { int a = 5; int b = 6; someVar.callSomething(a+b); })
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники