Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 了解Class关键字在此实例中的用法_C++_Vtk - Fatal编程技术网

C++ 了解Class关键字在此实例中的用法

C++ 了解Class关键字在此实例中的用法,c++,vtk,C++,Vtk,在阅读VTK源文件时,我注意到一些头文件中的语句如下 class vtkArray; class VTKIOCORE_EXPORT vtkArrayWriter : public vtkWriter { //Interface description here. } 我对“class vtkArray;”的说法感到困惑。这句话是什么意思?它被用来做什么,什么时候是使用它的好时机 此代码来自头文件。是否在头文件中?他们正向声明vtkArray类。这样,它们就不需要包含包含该类的头文件。然

在阅读VTK源文件时,我注意到一些头文件中的语句如下

class vtkArray;
class VTKIOCORE_EXPORT vtkArrayWriter : public vtkWriter
{
    //Interface description here.
}
我对“class vtkArray;”的说法感到困惑。这句话是什么意思?它被用来做什么,什么时候是使用它的好时机


此代码来自头文件。

是否在头文件中?他们正向声明vtkArray类。这样,它们就不需要包含包含该类的头文件。然后,它们可以将头文件包含在.cpp文件中


编辑:

这看起来像一个转发声明。 当您想在定义类之前使用它时,就需要它。

这是一个很好的例子。它主要用于需要声明类类型而不指定其内部形式的情况。这在将指针或引用作为语句处理时非常有用,例如:

type* x;
type& x;

不要求编译器知道
类型的大小

查找
转发声明
。我不同意将我的问题归类为“已经回答”。当然,提前声明是一个已经在这里详细讨论过的概念。但是,介绍一个概念和发现一个具体例子背后的概念是两码事。我的问题是后者的一个例子,而其他的帖子都是前者的例子。除了你上面的观点之外,我认为如果你以一种对你有意义的方式提出你的问题,这是很有用的。未来的搜索者可能会使用与您相同的词汇,如果我们删除此帖子,他们将更难找到正确的信息。我真的不喜欢那种你既没有足够的词汇来描述也没有有效的搜索的情况。找到合适的词汇表可以帮助你专注于你需要学习的东西。所以,不要担心他们会以“哦,不!!!已经回答!!!”的形式关闭它,欢迎使用堆栈溢出。:-)赛博,是的,这是一个头文件。