gpt4 book ai didi

C++ 使错误 : object_var has not been declared

转载 作者:行者123 更新时间:2023-11-30 05:45:05 25 4
gpt4 key购买 nike

<分区>

  • You could have forgot to include problemclass.h from the file where you are using ProblemClass.
  • You could have misspelled the name of ProblemClass either in its own header file or in the place where you are using it. This can be
    hard to spot if it is a capitalization error such as writing Problemclass or problemClass instead of ProblemClass.
  • You could have copy-pasted your inclusion guard #defines from one header file to another and then forgot to change the defined names. Then only the first of those two included header files would take effect.
  • You could have placed ProblemClass in a namespace A, in which case you must refer to ProblemClass as A::ProblemClass if you are referring to it from outside the namespace A.
  • You may be using templates and not expecting two-phase lookup to work the way it does.
  • You could have misspelled the file name in your include. The compiler would not report an error on that if you also have an old version of that file under the misspelled name.
  • You could have made ProblemClass a macro that only gets defined after you include problemclass.h, in which case what you see as ProblemClass gets replaced by something else by the macro preprocessor.
  • You could have defined ProblemClass in a header file other than problemclass.h and then problemclass.h actually defines something else.

以上摘自另一个类似的问题,我觉得有用但没有真正解决我的问题,声明如下:

我正在为机器人创建一个自然语言处理器,为软件提供各种对象来表示其环境中的真实世界项目(目前为 Blocks 世界),其中一个对象定义在 Block 中:

    /*
* Block.h
*
* Created on: 11 Mar 2015
* Author: Edward
*/

#ifndef BLOCK_HPP_
#define BLOCK_HPP_

#include "typedefinitions.h"
#include "dynamixel.h"
#include "BasicRobotFunctions.hpp"

class Block {
public:
bool grounded;
//TODO position is a deprecated variable, replace with distance from
//pos position;
int number;
int distance;
int object_brightness;
Block(BasicRobotFunctions basic);
virtual ~Block();
void setBrightness(int brightness);
void setGrounded(bool ground);
//void setPosition(int x, int y);
void setDistance(int number);
void setNumber(int number);
//pos getPosition();
int getNumber();
int getDistance();
bool getGrounded();
int getBrightness();
int lookAround(BasicRobotFunctions basic);
};

#endif /* BLOCK_H_ */

带有源文件:

/*
* Block.cpp
*
* Created on: 11 Mar 2015
* Author: Edward
*/

#include "Block.hpp"

#define DEFAULT_PORTNUM 3 // COM3
#define DEFAULT_BAUDNUM 1 // 1Mbps

Block::Block(BasicRobotFunctions basic) {
grounded = false;
number = Block::lookAround(basic);
}

Block::~Block() {}

void Block::setGrounded(bool ground){
grounded = ground;
}
/*
void Block::setPosition(int x, int y){
position.x = x;
position.y = y;
}*/

void Block::setDistance(int dist){
distance = dist;
}

void Block::setNumber(int num){
number = num;
}

bool Block::getGrounded(){
return grounded;
}
/*
pos Block::getPosition(){
return position;
}*/

int Block::getNumber(){
return number;
}

int Block::getDistance(){
return distance;
}

int Block::getBrightness(){
return object_brightness;
}

//TODO Arrange function to incorporate Turn() in BasicRobotFunctions
int Block::lookAround(BasicRobotFunctions basic){
int num = 0;
dxl_initialize(DEFAULT_PORTNUM,DEFAULT_BAUDNUM);
for(int i = 0;i<360;i++){
dxl_write_word(11,32,-255);
dxl_write_word(11,30,200);
basic.Step(1);
dxl_write_word(11,32,255);
dxl_write_word(11,30,100);
if(dxl_read_byte(100,32) >= dxl_read_byte(100,52)){
num++;
}
}
dxl_terminate();
return num;
}

void Block::setBrightness(int bright){
object_brightness = bright;
}

但是,我从构造函数和 turnAround(BasicRobotFunctions) 方法收到以下编译错误:

In file included from Robot.hpp:11,
from BasicRobotFunctions.hpp:12,
from main.cpp:8:
Block.hpp:23: error: expected `)' before 'basic'
Block.hpp:35: error: 'BasicRobotFunctions' has not been declared
make.exe: *** [main.o] Error 1

检查了我使用对象作为变量的其他类后,我得到了同样的错误。针对引用中的要点: - 包括 BasicRobotFunctions.hpp - 类名在所有提到它的不同实例中拼写相同 - 我没有复制粘贴任何包含保护 - 我没有在项目中使用任何命名空间 - 我也没有使用任何模板 - 文件名在我的包含中没有拼错 - 我没有在程序中定义任何宏 - 我确保每个类都在其自己的头文件中定义

我的系统是否可能存在任何其他问题、我正在犯的任何错误或我正在做的任何不正确的编程实践?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com