Я просто наткнулся на следующий код:C++ определение встроенный класс и объект инициализации
#include <iostream>
static class Foo
{
public:
Foo()
{
std::cout << "HELLO" << std::endl;
}
void foo()
{
std::cout << "in foo" << std::endl;
}
}
blah;
int main()
{
std::cout << "exiting" << std::endl;
blah.foo();
return 0;
}
я не видел вышеупомянутый метод definining переменную перед тем - определение класса осуществляется рядный с переменной определение. Это напоминает мне анонимные классы на Java. Что это называется, и это в стандарте C++?
Благодаря
Тарас
Нужно ли, чтобы класс был назван в этом случае (т. Е. Являются анонимными классами, разрешенными на C++)? И, поскольку он назван, вы можете создать другие объекты 'Foo'? – 2010-03-05 04:38:11
... скоро будет совместима с ISO C99. Я должен добавить, однако, что это использование довольно редко встречается в идиоматическом C++, хотя оно и является законным. –
@STingRaySC: нет, анонимные классы в порядке, и да, вы можете создавать другие. На самом деле вы можете создать два, даже если они анонимны: 'struct {...} foo1, foo2;'. – Potatoswatter