因此,我需要我的对象能够使用主类中的函数,因此在创建它们时,我希望它们通过参数获取它。
int main(int argc, char* args[])
{
Unit units[3]={{5,5,this},{8,8,this},{12,12,this}};
units[0].init(true);
for (int i=1;i<sizeof(units) / sizeof(units[0]);i++) {
units[i].init(false);
}
我把“this”放在哪里,它应该是主类,这就是我在java中的做法,但我不确定如何在这里做到这一点。我尝试了“*this”和“this”,但我得到的只是一个错误: 在非成员函数中无效使用“this”。 搜索错误没有给我任何帮助,因为我对 C++ 的类系统相当不了解。
前两个参数用于位置。 Init 命令参数设置它们是否是盟友。
我希望 Unit 类能够访问:
int getClosestHostileX(int ask_x,int ask_y,bool team) {
return 55;
}
稍后这里应该有更多代码,我只是想让它们返回。
我正在使用 Code::Blocks IDE 和 GNU GCC 编译器。
TL;DR 如何让其他类访问我的主类中的函数?
最佳答案
在 Java 中也无法做到这一点。在Java中,入口点是一个静态方法,没有关联的对象实例。
解决方案是相同的——实例化您的类型。
int main(int argc, char** argv)
{
MainClass main_object; // creates an instance
Unit units[3]={{5,5,&main_object},{8,8,&main_object},{12,12,&main_object}};
units[0].init(true);
for (int i=1;i<sizeof(units) / sizeof(units[0]);i++) {
units[i].init(false);
}
关于c++ - 将主类传递给其他类,以便它们可以访问其功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13348002/