Was ist falsch mit dem folgenden Code. Ich erhalte Kompilierungsfehler. Ich habe auch versucht Erklärung der Klasse B. Aber konnte nicht gelingen.C++ - Kompilierungsfehler bei der Verwendung von Typdef 'Members einer anderen Klasse
Test.cpp
#include <memory>
#include <iostream>
namespace api
{
class A
{
public:
typedef std::shared_ptr<A> APtr;
APtr get_a_ptr();
B::BPtr get_b_ptr();
};
class B
{
public:
typedef std::shared_ptr<B> BPtr;
BPtr get_b_ptr();
A::APtr get_a_ptr();
};
}
int main(int argc, char **argv)
{
return 0;
}
Aber warum kann ich Typedef von Klasse B shared_ptr in Klasse A nicht verwenden? – aditya1811
Ich habe gerade meine Antwort mit der Antwort auf diesen Kommentar @ aditya1811 aktualisiert. Da eine Vorwärtsdeklaration besagt, dass eine Klasse "B" folgen wird, verspreche ich Herrn Compiler, aber der Compiler weiß nicht, welche Klasse "B" in ihm enthalten sein wird. – gsamaras