C++ Qt源代码的组织方式
我试图找到C++ Qt源代码的组织方式,c++,qt,qt4,C++,Qt,Qt4,我试图找到QLinkedList::operator+(const-QLinkedList&list)的Qt实现,但我无法理解Qt源代码。这是Qt 4.8.4的一部分: 我在.h: QLinkedList操作符+(常量QLinkedList&l)常量 但在.cpp中,我看到的是: /*! \fn QLinkedList<T> QLinkedList::operator+(const QLinkedList<T> &other) const Returns
QLinkedList::operator+(const-QLinkedList&list)
的Qt实现,但我无法理解Qt源代码。这是Qt 4.8.4的一部分:
我在.h:
QLinkedList操作符+(常量QLinkedList&l)常量代码>
但在.cpp中,我看到的是:
/*! \fn QLinkedList<T> QLinkedList::operator+(const QLinkedList<T> &other) const
Returns a list that contains all the items in this list followed
by all the items in the \a other list.
\sa operator+=()
*/
/*\fn QLinkedList QLinkedList::运算符+(常量QLinkedList和其他)常量
返回包含此列表中所有项目的列表
通过\a其他列表中的所有项目。
\sa运算符+=()
*/
定义在哪里?Qt使用的是什么组织?如果不仔细查看,实现似乎位于src/corelib/tools/qlinkedlist.h
(您可以在此处查看此文件:)
特别是,大多数函数都是在文件顶部附近的一行或两行中定义的(我链接的文件中的第78行到255行)。它们使用一些较长的函数来完成工作(其中相当一部分无法通过公共QtaPI访问),这些函数在我链接的文件的第258到516行中定义
因为qLink表是模板,实现完全在头中是有意义的(事实上,你不能)[我使用术语松散地把实现放在C++文件中)。有关如何工作的更深入解释,请参阅以下问题:
您提到的特定函数,QLinkedList::operator+(const-QLinkedList&list)
在我链接的文件的第511行定义。QLinkedList::operator+(const-QLinkedList&l)
的定义也在底部的QLinkedList.h
中
这就是定义:
template <typename T>
QLinkedList<T> QLinkedList<T>::operator+(const QLinkedList<T> &l) const
{
QLinkedList<T> n = *this;
n += l;
return n;
}
模板
QLinkedList QLinkedList::运算符+(常量QLinkedList&l)常量
{
QLinkedList n=*这个;
n+=l;
返回n;
}
资料来源: