Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

class CDB;

class CDM
{
public:
    friend CDB& CDB::Add(const CDM&);
    CDM& Add(const CDB&);
};

class CDB
{
public:
    CDB& Add(const CDM&);
    friend CDM& CDM::Add(const CDB&);
};

This code gives me the error : error C2027: use of undefined type 'CDB'. How to resolve this.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
742 views
Welcome To Ask or Share your Answers For Others

1 Answer

No, you can't do that. There is no way to remove the cyclic dependency.

You should be able to get by with making the class CDB a friend of CDM instead of wanting to making CDB::Add() a friend.

class CDB;

class CDM
{
   public:
      friend class CDB;
      CDM& Add(const CDB&);
};

class CDB
{
   public:
      CDB& Add(const CDM&);
      friend CDM& CDM::Add(const CDB&);
};

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...