将类指针传入类的构造函数
Passing class pointer in to constructor for class
在一个合作项目中工作(希望两个项目比一个更容易-我错在哪里?)
基本上,我们试图做的有点像这样:
class first
{
first(int * num);
};
class second
{
second(first * frst);
first * frt;
};
first::first(int * num)
{
}
second::second(first * frst)
{
frt = frst;
}
不过,有一点问题,我们不能包含我们的Core.h文件,因为它包含了我们已经包含的文件的include(这是有意义的)。简短的版本是,我们必须做一些更像这样的事情:
#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类中访问它,这会导致问题吗?
感谢
您正在转发声明。没事。
当您可以在没有任何编译错误的情况下使用Core->GetSomething()
时,这意味着类Core
已经定义,并且它不是一个不完整的类型。因此,使用它没有问题。只需确保在构造Player
时传递了一个指向Core
的有效指针。
注意:在代码中,您传递的是指向类类型的指针,而不是引用。
相关文章:
- 如果基类包含双指针成员,则派生类的构造函数
- 复制构造函数C++无法正确复制指针
- 使用基类指针调用基类的值构造函数的语法是什么?
- C++ 对象指针数组的复制构造函数
- 构造函数 (C++) 中的 char 指针参数存在问题
- 为什么使用 std::istream_iterator 构造函数返回指针
- 在对象构造期间,将指向尚未构造的子对象的指针传递给另一个子对象的构造函数是否危险?
- 使用指向成员函数的指针在另一个类中调用类构造函数
- 通过从构造函数中的'this'复制的指针改变常量对象
- 为什么指针对象没有调用默认构造函数
- 函数返回时,带指针的复制构造函数失败
- 如何编写复制构造函数来复制指针?
- 如何使用函数(而不是构造函数)将派生类对象分配给基类指针
- 使用 Rcpp 公开将指向对象的指针作为参数的构造函数
- std::shared_ptr 使用别名构造函数,是否可以检索初始指针值?
- 如何正确实现具有原始指针的类的复制构造函数?
- 构造函数主体内的本地指针C++内存泄漏
- 如何在将原始指针移动到基类构造函数之前从unique_ptr中提取原始指针
- 有没有办法通过读取 c++ 中的文件来构造函数指针
- 构造函数指针改变