我们正在开发一个 C++ 项目。我试图通过简单地在 Eclipse 中创建一个类来为每个类创建头文件和源文件。
我想要实现的不是声明一个可从所有类访问的全局变量。
例如,
Im_Position.cpp
#include "Im_Position.h"
void Im_Position::Im_GetPosition (const nav_msgs::Odometry::ConstPtr& msg)
{
vehicle_position.x_pose = msg->pose.pose.position.x;
vehicle_position.y_pose = msg->pose.pose.position.y;
vehicle_position.x_orient = msg->pose.pose.orientation.x;
vehicle_position.y_orient = msg->pose.pose.orientation.y;
vehicle_position.z_orient = msg->pose.pose.orientation.z;
vehicle_position.w_orient = msg->pose.pose.orientation.w;
}
Im_Position.h
#include "nav_msgs/Odometry.h"
class Im_Position {
public:
void Im_GetPosition(const nav_msgs::Odometry::ConstPtr& msg);
};
我在 Im_Position.cpp 中收到一个错误,指出未在此范围内声明 vehicle_position。我不知道它是由我的编码风格还是 Eclipse 的链接问题引起的。我正在使用 Ubuntu 12.04 和 ROS 环境。
Im_RobotKontrol.cpp
#include "Im_Position.h"
typedef struct{
double x_pose;
double y_pose;
double x_orient;
double y_orient;
double z_orient;
double w_orient;
} position_type;
extern position_type vehicle_position;
int main()
{
...
}
它实际上是在上面可以看到的另一个源文件中声明的,因为我希望它在所有类中都使用。任何帮助都感激不尽。