C ++,类中的结构问题

问题描述 投票:0回答:1

每个人都可以帮助我,我将非常感谢。我一直在尝试通过同一个类的函数来填充名为m_Center的结构,我正在使用eclipse进行工作,它给出了下一条错误消息:

-'m_Center' was not declared in this scope
-Field 'radius' could not be resolved
-Symbol 'm_Center' could not be resolved

我的头文件是Obstacles.h

#ifndef SRC_OBSTACLES_H_
#define SRC_OBSTACLES_H_

#include <eigen3/Eigen/Dense>
#include <iostream>
#include <random>
#include <list>
#include <stdlib.h>
#include <time.h>

class CObstacles
{
protected:
    struct Center
    {
        float m_vXdCenterX;
        float m_vXdCenterY;
        float m_vXdCenterZ;
        double distance;
        Eigen::VectorXf v_XfAxisCyl;
        Eigen::VectorXf vXfP1;
        double radius;
    };
    Center m_Center;

public:
    CObstacles(double dradius, Eigen::VectorXf &m_vXdMaxBound, Eigen::VectorXf &m_vXdMinBound, int num_obstacles);
    ~CObstacles();

    void generate_obstacles(double dradius, Eigen::VectorXf &m_vXdMaxBound, Eigen::VectorXf &m_vXdMinBound, int num_obstacles);
};


#endif

Obstacles.cpp为:

#include "Obstacles.h"

CObstacles::CObstacles(double dradius, Eigen::VectorXf &m_vXdMaxBound, Eigen::VectorXf &m_vXdMinBound, int num_obstacles)
{
    double m_dradius = dradius;
    Eigen::VectorXf m_dvXdMaxBound = m_vXdMaxBound;
    Eigen::VectorXf m_dvXdMinBound = m_vXdMinBound;
    int dnum_obstacles = num_obstacles;
}

CObstacles::~CObstacles()
{
}

void generate_obstacles(double dradius, Eigen::VectorXf &m_vXdMaxBound, Eigen::VectorXf &m_vXdMinBound, int num_obstacles)
{
    srand(time(NULL));
    float aux_centerx, aux_centery;
    Eigen::Vector3f vXfP1;
    Eigen::Vector3f vXfP2;
    Eigen::Vector3f distance;
    for(int num_obs = 0; num_obs < num_obstacles; num_obs++)
    {
        aux_centerx = rand() % 20 + 1;
        aux_centery = rand() % 20 + 1;
        vXfP2 << aux_centerx, aux_centery, 0;
        vXfP1 << aux_centerx, aux_centery, 0;
        distance = vXfP2 - vXfP1;
        m_Center[num_obs].radius = dradius;
    }
}
c++ eclipse class c++11 structure
1个回答
0
投票

将类名添加到generate_obstacles方法之前。

void CObstacles::generate_obstacles(double dradius, Eigen::VectorXf &m_vXdMaxBound, Eigen::VectorXf &m_vXdMinBound, int num_obstacles)
{
...
}
© www.soinside.com 2019 - 2024. All rights reserved.