class 中变量的 属性 似乎未声明
Property of a variable in class seems to be undeclared
我有一个 class Object
,我在里面声明了一个 b2Shape
类型的变量,它有两个 public 属性,如下所示:
class b2Shape{
public:
[other methods]
Type m_type;
float32 m_radius;
};
在对象内部我是这样声明的:
class Object{
public:
[other methods]
b2Shape* shape;
void printR(){
cout<<shape.m_radius;
}
};
当我创建对象实例时,我通过引用 shape
var 传递了一个 b2Shape
,但是在对象内部我无法访问 shape
的属性(通过调用printR()
例如)。编译器说他们未声明,为什么会这样?这是我创建对象实例的代码:
Object ball;
b2Shape ballBox;
ballBox.m_radius = 18;
ball.shape = &ballBox;
您需要取消对指针的引用。在 ball.shape 中只会保存 b2Shape 对象实例的地址。这就是为什么你需要使用:
ball.shape->m_radius
我有一个 class Object
,我在里面声明了一个 b2Shape
类型的变量,它有两个 public 属性,如下所示:
class b2Shape{
public:
[other methods]
Type m_type;
float32 m_radius;
};
在对象内部我是这样声明的:
class Object{
public:
[other methods]
b2Shape* shape;
void printR(){
cout<<shape.m_radius;
}
};
当我创建对象实例时,我通过引用 shape
var 传递了一个 b2Shape
,但是在对象内部我无法访问 shape
的属性(通过调用printR()
例如)。编译器说他们未声明,为什么会这样?这是我创建对象实例的代码:
Object ball;
b2Shape ballBox;
ballBox.m_radius = 18;
ball.shape = &ballBox;
您需要取消对指针的引用。在 ball.shape 中只会保存 b2Shape 对象实例的地址。这就是为什么你需要使用:
ball.shape->m_radius