【发布时间】:2015-10-14 05:21:58
【问题描述】:
我知道用指针你可以做到这一点:
T * myPtr = 0;
将指针设置为 NULL 值。但是,当我尝试这样做时:
T * myPtrArray[2] = {0, 0};
我收到“预期表达式”语法错误。为什么?
注意,我使用的是 g++,上面的代码出现在类构造函数中:
template <class T>
RBTree<T>::RBTree() {
m_Data = T();
m_Children = {0, 0};
m_Parent = 0;
m_Color = BLACK;
}
有问题的类成员声明为:
T m_Data;
RBTree<T> * m_Children[2];
RBTree<T> * m_Parent;
bool m_Color;
【问题讨论】:
-
什么编译器?使用 g++、clang 和 msvc 为我工作。
-
它应该可以工作。任何上下文?
-
请显示实际的错误信息。
-
这是赋值,不是初始化。有区别。数组不支持赋值。
-
我认为因为它在构造函数中,所以它会被认为是初始化。那么这是错的吗?
标签: c++ pointers array-initialization