【发布时间】:2019-07-16 17:01:57
【问题描述】:
所以我在文件 Node.h 中编写了一个类“Node”作为树数据容器。它包含一个二维数组,其大小在编译时给出,但我只能从不同的类中获取它,而不是硬类型它。我试过了
class Node {
private:
int array[size][size];
只有我自己
error: ‘fFieldSize’ was not declared in this scope
因此,我做了这样的事情:
template<int T,int Z>
class Node {
private:
int array[T][Z];
现在,我将这个文件包含在我想要的“引擎”类中
使用节点实例
-
使用返回类型Node的“Engine”的成员函数
1. node<size,size> firstnode; 2. Node GetData();
引擎有一个 .h 和一个 .cxx 文件。 我不知道如何用成员函数来做这件事。
我试过了
Node<size,size> GetData;
但我得到了错误:
error: invalid use of non-static data member ‘MyNAMESPACE::Engine::size’
我们将不胜感激。另外,这是我的第一个问题,我希望我所做的一切都符合标准。
【问题讨论】:
-
如果您真的想要这样做并且在编译时知道大小,那么您的设置与something like this 有何不同?使用您的问题代码的minimal reproducible example 更新您的问题,我们可以复制/粘贴/编译以产生您的错误,这将很有帮助。
-
您的大小变量必须是 constexpr 或字面量。