在Eclipse中无法用C++解析结构类型
Struct Type Could Not Be Resolved C++ in Eclipse
我们在Ubuntu 12.04LTS和ROS环境中使用Eclipse在C++中进行一个项目。我过去常常在源文件中定义类,并跳过原型;但现在我们被告知要使用头文件作为原型,使用源文件作为其原型包含在头文件中的函数的扩展。它旨在实现易于阅读的代码。
然而,我在返回结构类型方面遇到了问题,而我以前的工作方式没有问题。,让我清楚地表明我正在努力实现的目标
这是头文件,
class Im_Robot
{
public:
Im_Robot();
private:
typedef struct
{
double d_kp1;
double d_ki1;
double d_kd1;
double d_kp2;
double d_ki2;
double d_kd2;
} ANGULAR_PARAMS;
ANGULAR_PARAMS angular_params;
protected:
void SetAngularParams(double d_kp1, double d_ki1,double d_kd1, double d_kp2,double d_ki2,double d_kd2);
ANGULAR_PARAMS GetAngularParams();
......
这是源文件,
void Im_Robot::SetAngularParams(double d_kp1,
double d_ki1,
double d_kd1,
double d_kp2,
double d_ki2,
double d_kd2)
{
// this, örneği çıkarılan objeyi temsil eden anahtar kelimedir.
this->angular_params.d_kp1 = d_kp1;
this->angular_params.d_ki1 = d_ki1;
this->angular_params.d_kd1 = d_kd1;
this->angular_params.d_kp2 = d_kp2;
this->angular_params.d_ki2 = d_ki2;
this->angular_params.d_kd2 = d_kd2;
}
ANGULAR_PARAMS Im_Robot::GetAngularParams()
{
return this->angular_params;
}
......
在源文件和对应行中
ANGULAR_PARAMS Im_Robot::GetAngularParams()
"无法解析类型ANGULAR_PARAMS。"出现错误。尽管我在网上搜索过,但还是找不到任何可靠的解决方案。任何答复都将不胜感激。已经谢谢了。。
ANGULAR_PARAMS
是一个嵌套类,其作用域是它的封闭类。必须使用完全限定的名称:
Im_Robot::ANGULAR_PARAMS Im_Robot::GetAngularParams()
{
return this->angular_params;
}
其他:
typedef
在C++中是不需要的,只需使用struct ANGULAR_PARAMS
即可- 访问说明符不一致,因为
ANGULAR_PARAMS
是Im_Robot
的private
类,而GetAngularParams()
是protected
,这意味着从Im_Robot
派生的类可以调用函数,但不能显式使用ANGULAR_PARAMS
名称(请参阅演示)。不过,可以使用auto
来访问返回的实例(请参阅演示和为什么我可以在私有类型上使用auto?)
相关文章:
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- <badref> 当使用 CallInst::CreateMalloc 作为结构类型时
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 为什么"具有常量成员的结构"类型的指针不能指向"具有非常量成员的结构"?
- 查找声明为结构类型 C++ 的数组末尾
- C++ - 将结构类型的数组传递给用户定义的函数
- PowerShell 使用结构类型参数调用 C++ DLL 的导出函数
- NTTP 的结构类型:为什么所有成员都必须是公共的?
- 当我尝试访问结构类型时,我收到 std::bad_variant_access 异常
- 承诺可以使用结构类型吗?
- 填充模板化结构类型的结构成员
- 如何为结构类型变量赋值
- 在 c++ 中将结构类型转换为无符号字符*
- 在 c++ 中将一种结构类型分配给另一种类型
- 如何访问在 c++ 中在类内声明的结构类型指针变量?
- 确定输入"conscalc: calc"的类型时出错。不能联合编码器。具有不同字段集的结构类型
- 无法将结构类型的标识符设置为 nullptr;
- 结构类型成员的默认构造函数中的默认参数
- 如何在执行期间终止(或返回)具有结构类型的自动函数
- 在 stl 中迭代结构类型的队列