Sir*_*lot 6 c++ methods member non-static
我被告知我不能在类函数中使用'this'关键字.我来自c#,我已经习惯了这个工作,但是编译器告诉我它只能在非静态成员函数中使用.
D3DXVECTOR3 position;
void Position(D3DXVECTOR3 position)
{
this.position = position;
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*k B 16
在C++中,您需要Position使用类名来限定函数:
void YourClassNameHere::Position(D3DXVECTOR3 position)
同样来自@ Pubby8的答案this是一个指针,而不是一个引用,所以你需要使用this->position(或者考虑使用不影响类成员的参数名称 - 我喜欢_在我的类成员上使用尾随).
此外,默认情况下,C++不会通过引用传递,因此如果D3DXVECTOR3是复杂类型,您将复制大量数据.考虑将其作为传递const D3DXVECTOR3& position.
Pub*_*bby 14
这是一个包含对象地址的指针.
D3DXVECTOR3 position;
void YourClassNameHere::Position(D3DXVECTOR3 position)
{
this->position = position;
}
Run Code Online (Sandbox Code Playgroud)
应该管用.
D3DXVECTOR3 position;
void YourClassNameHere::Position(D3DXVECTOR3 position)
{
(*this).position = position;
}
Run Code Online (Sandbox Code Playgroud)
还应该工作.