C++ c++;-你如何得到一个;指向自我的指针;在一个班级里?
在类型为C++ c++;-你如何得到一个;指向自我的指针;在一个班级里?,c++,C++,在类型为class a的对象的方法中,我处理具有公共方法.join(*a)的class B对象 我希望我的A类型的对象调用此someObjectOfTypeB.join(*A)方法,使用指向自身的指针作为参数 void A::someMethod() { B b(); b.join(I want to a to use a pointer to itself as a parameter); } A a(); a.someMethod(); 经过进一步调查,这并不是我自己认为
class a
的对象的方法中,我处理具有公共方法.join(*a)
的class B
对象
我希望我的A
类型的对象调用此someObjectOfTypeB.join(*A)
方法,使用指向自身的指针作为参数
void A::someMethod()
{
B b();
b.join(I want to a to use a pointer to itself as a parameter);
}
A a();
a.someMethod();
经过进一步调查,这并不是我自己认为的问题;这确实是做我想做的事情的正确方法。尝试使用:
正如@AndrewLazarus和@JonathanWakely评论的那样,使用B代码>而不是bb()
。后者声明了一个不带参数的函数b
,该函数返回b
,这不是您想要的。请尝试使用:
正如@AndrewLazarus和@JonathanWakely评论的那样,使用B代码>而不是bb()
。后者声明了一个函数b
,没有返回b
的参数,这不是您想要的。这不就是这个
的目的吗!?!您在此处将b
声明为一个函数,取为void并返回ab
。这是您想要的吗?*A
不是有效的类型。你是说join
的参数类型是A*
,还是说给定一个合适的表达式A
,join
可以被称为join(*A)
?@JonathanWakely:如果你真的读了那篇文章,你会发现这不是最烦人的解析,我希望人们不要再散布这样的神话。它仅仅与MVP有关。@Werner,我怀疑您被错误消息弄糊涂了,因为它声明了B()
,而不是您认为的那样(正如上面的评论所说,它声明了一个函数)。尝试B;b、 加入(这个)代码>(注意,那不是bb;
不是bb();
)这不是这个的目的吗!?!您在此处将b
声明为一个函数,取为void并返回ab
。这是您想要的吗?*A
不是有效的类型。你是说join
的参数类型是A*
,还是说给定一个合适的表达式A
,join
可以被称为join(*A)
?@JonathanWakely:如果你真的读了那篇文章,你会发现这不是最烦人的解析,我希望人们不要再散布这样的神话。它仅仅与MVP有关。@Werner,我怀疑您被错误消息弄糊涂了,因为它声明了B()
,而不是您认为的那样(正如上面的评论所说,它声明了一个函数)。尝试B;b、 加入(这个)
(注意,这是bb;
不是bb();
)这实际上是说:B.join(指向B的指针);这就是我发帖的原因,因为我试过:(@Werner你的意思是b.join(&b)
?也许……不管怎样,我希望参数是a自己的,而不是b@WernerA
自身,在A
内部,它这个
。还是我误解了?@Werner:你误解了它的工作原理。内部A::someMethod()
,这个
引用了类A
的实例。这实际上是说:b.join(指针指向b);这就是我发帖的原因,因为我试过:(@Werner你的意思是b.join(&b)
?也许……不管怎样,我希望参数是a自己的,而不是b@WernerA
自身,在A
内部,它这个
。还是我误解了?@Werner:你误解了它的工作原理。在A::someMethod()
内部,这个
指的是类A
的实例。
void A::someMethod()
{
B b;
b.join(this);
}