【发布时间】:2012-10-18 05:50:24
【问题描述】:
在 c++ 中指向指针的指针合法吗?我遇到了这个 SO 问题:Pointer to Pointer to Pointer
但是,如果它是合法的 c++,答案还不清楚。假设我有:
class A{
public:
void foo(){
/* ect */
}
};
class B{
public:
A* a;
/* ect */
};
void Some_Func() {
B *b;
// besides this looking ugly, is it legal c++?
b->a->foo();
};
b->a->foo() 行可以写吗?有没有更好的方法来表示这个表达式?
【问题讨论】:
-
除了
foo和a在他们的每个类中都是私有的(你必须将它们公开才能工作),为什么不可以呢?实际上,它甚至不是特别难看。 -
为什么不呢?指针是一种类型,就像任何其他类型一样。
-
它们完全没问题,但是你不能直接从 'b' (b->a) 访问 'a',因为 a 是 B 类的私有成员。否则它应该可以工作。
-
你这里的不是指向指针的指针。它是一个指向具有指针成员的对象的指针。
-
它们应该是公开的......我做了更改。