我是C ++的新手,在查看别人的代码时,遇到了一个我不理解的表达式。
在头文件中,我有一个普通的类定义:
//in data.hpp
class DATA_C : public QThread
{
Q_OBJECT
// the rest of class definition...
}
源文件的片段:
//in data.cpp
class DATA_C data_container;
我可以理解“ DATA_C数据”,这是一个声明;但是什么是“类DATA_C data_container”?它是做什么的?
谢谢。
答案 0 :(得分:1)
在这种情况下,tt与DATA_C data_container;
的含义完全相同。在许多情况下,如果仅使用class X
是有效的,则可以选择使用术语X
。
通常,当尚未定义class X
并且声明了该类(但未定义它)时,可以使用X
。但是,如果先前没有定义class DATA_C data_container;
,则不允许DATA_C
,因为您不能实例化不完整类型的对象。