问题描述
- 一个类中内嵌两个结构体
-
class AP_Vehicle {public:
/*
common parameters for fixed wing aircraft
*/
struct FixedWing {
AP_Int8 throttle_min;
AP_Int8 throttle_max;AP_Int8 throttle_slewrate;
AP_Int8 throttle_cruise;
AP_Int16 airspeed_min;
AP_Int16 airspeed_max;
AP_Int16 pitch_limit_max_cd;
AP_Int16 pitch_limit_min_cd;AP_Int8 autotune_level;
AP_Int16 land_pitch_cd;
};/* common parameters for multicopters */ struct MultiCopter { AP_Int16 angle_max; };
};
一个类中内嵌两个结构体,
static AP_Vehicle::MultiCopter aparm; //这个静态函数用来定义
这里的定义意思应该是aparm函数继承了MultiCopter的属性。
这样理解对吗?
解决方案
继承是类和类之间才有的关系,写法上是
```class/struct MyClassName:public/protected/private BaseClassName
{
//类定义
}
这种形式。意思是MyClassName继承自BaseClassName。你写的那句话的意思是**定义一个MultiCopter类的对象**,名字是aparm。由于MultiCopter类是嵌套类,因此要在前面加上外层类的类名和"::"作用域选择符。
解决方案二:
aparm 定义是一个变量,不是函数哦。
aparm 是 AP_Vehicle::MultiCopter 类型的一个变量。
解决方案三:
static AP_Vehicle::MultiCopter aparm;
只是定义了一个MultiCopter 的对象,_
时间: 2024-10-31 10:28:03