Я переношу код с Java на С++, и я хотел бы воспроизвести некоторые анонимные функции.
В файле A.h у меня есть:
class A
{
private:
int a;
class AnonClass;
friend class AnonClass;
};
В файле A.cpp у меня есть:
namespace
{
class AnonClass
{
public:
AnonClass(A* parent)
{
parent->a = 0; // This doesn't work, a is not accessible
}
}
}
Возможно ли совместить класс в анонимном пространстве имен на С++?
В Java вы можете объявить анонимные классы, чтобы это было очень похоже. Также он не будет подвергать AnonClass клиентам A.h