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并返回a
b
。这是您想要的吗?
*A
不是有效的类型。你是说
join
的参数类型是
A*
,还是说给定一个合适的表达式
A
join
可以被称为
join(*A)
?@JonathanWakely:如果你真的读了那篇文章,你会发现这不是最烦人的解析,我希望人们不要再散布这样的神话。它仅仅与MVP有关。@Werner,我怀疑您被错误消息弄糊涂了,因为它声明了
B()
,而不是您认为的那样(正如上面的评论所说,它声明了一个函数)。尝试
B;b、 加入(这个)(注意,那不是
bb;
不是
bb();
)这不是
这个
的目的吗!?!您在此处将
b
声明为一个函数,取为void并返回a
b
。这是您想要的吗?
*A
不是有效的类型。你是说
join
的参数类型是
A*
,还是说给定一个合适的表达式
A
join
可以被称为
join(*A)
?@JonathanWakely:如果你真的读了那篇文章,你会发现这不是最烦人的解析,我希望人们不要再散布这样的神话。它仅仅与MVP有关。@Werner,我怀疑您被错误消息弄糊涂了,因为它声明了
B()
,而不是您认为的那样(正如上面的评论所说,它声明了一个函数)。尝试
B;b、 加入(这个)
(注意,这是
bb;
不是
bb();
)这实际上是说:B.join(指向B的指针);这就是我发帖的原因,因为我试过:(@Werner你的意思是
b.join(&b)
?也许……不管怎样,我希望参数是a自己的,而不是b@Werner
A
自身,在
A
内部,它
这个
。还是我误解了?@Werner:你误解了它的工作原理。内部
A::someMethod()
这个
引用了类
A
的实例。这实际上是说:b.join(指针指向b);这就是我发帖的原因,因为我试过:(@Werner你的意思是
b.join(&b)
?也许……不管怎样,我希望参数是a自己的,而不是b@Werner
A
自身,在
A
内部,它
这个
。还是我误解了?@Werner:你误解了它的工作原理。在
A::someMethod()
内部,
这个
指的是类
A
的实例。
void A::someMethod()
{
    B b;
    b.join(this);
}