将类指针传递给类的构造函数

时间:2013-12-07 21:50:36

标签: c++ class constructor

参与一个合作项目(希望两个比一个更容易 - 我有多么错......?)

基本上,我们要做的就是这样:

class first
{
    first(int * num);
};

class second
{
    second(first * frst);
    first * frt;
};

first::first(int * num)
{

}

second::second(first * frst)
{
    frt = frst;
}

但是有一个问题,我们不能包含我们的Core.h文件,因为它包含我们已经包含的文件(在某处有感觉)。简短的版本是,我们不得不做更多这样的事情:

#ifndef PLAYERSTRUCTURE
#define PLAYERSTRUCTURE
// DO NOT INCLUDE CORE IN THIS FILE

class Core;

struct PlayerMem
{
    int cid;
    int y, x, z;
};

class Player
{
public:
    Player::Player(Core * coar);
    Player::Player(void);
    Player::~Player(void);
};
#endif

Core类已声明但未定义,如果我们尝试使用Core-> GetSomething()等从Player类中访问它会导致问题吗?

由于

1 个答案:

答案 0 :(得分:1)

你是转发声明。没关系。

如果您可以在没有任何编译错误的情况下使用Core->GetSomething(),则表示已定义类Core,并且它不是不完整的类型。因此,使用它没有问题。只需确保在构建Core时将有效指针传递给Player

注意:在您的代码中,您传递的是指向类类型而非引用的指针。