Der folgende Code wird nicht in Visual Studio 2008 kompiliert. Wie bekomme ich es, einen unären Operator in der Foo1-Klasse zu ermöglichen, die es in einen Balken konvertiert, wenn Foo1 vor Bar definiert ist?Wie implementiere ich eine unäre Operatorüberladung für einen vorwärts deklarierten Typ in C++?
class Foo1
{
public:
int val;
operator struct Bar() const;
};
struct Bar
{
int val;
};
// This does not compile
Foo1::operator Bar() const
{
Bar x;
x.val = val;
return x;
}
Sie don‘ t brauchen 'struct Bar', C++ 's Strukturen sind bereits Typen. – Puppy
Ich verwende struct Bar als eine Forward-Deklaration, da die Definition von Bar erst später erscheint. – camomilk