Qt源代码是如何组织的
How the Qt source code is organized
我正试图找到QLinkedList::operator+( const QLinkedList<T> &list )
的Qt实现,但我无法理解Qt源代码。这是问题4.8.4的一部分:
我在.h:中找到了申报单
QLinkedList<T> operator+(const QLinkedList<T> &l) const;
但在.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+=()
*/
定义在哪里?Qt使用的组织是什么?
如果不仔细观察,实现似乎在src/corelib/tools/qlinkedlist.h
中(您可以在此处查看此文件:http://qt.gitorious.org/qt/qt/blobs/4.8/src/corelib/tools/qlinkedlist.h)。
特别是,大多数函数都定义在文件顶部附近的一行或两行中(我链接的文件中的第78行至第255行)。它们使用一些较长的函数来完成工作(其中相当一部分不能通过公共Qt API访问),这些函数定义在我链接的文件中的第258到516行。
Beause QLinkedList是一个模板,实现完全在头中是有意义的(事实上,你"不能"[我用这个词松散地]把实现放在C++文件中)。要更深入地解释这是如何工作的,请参阅以下问题:为什么模板只能在头文件中实现?。
您提到的特定函数QLinkedList::operator+(const QLinkedList<T> &list)
定义在我链接的文件的第511行。
QLinkedList<T>::operator+(const QLinkedList<T>& l)
的定义也在底部的qlinkedlist.h
内部。
这就是定义:
template <typename T>
QLinkedList<T> QLinkedList<T>::operator+(const QLinkedList<T> &l) const
{
QLinkedList<T> n = *this;
n += l;
return n;
}
来源:http://qt.gitorious.org/qt/qt/blobs/v4.8.4/src/corelib/tools/qlinkedlist.h
- 在Linux中哪里可以找到互斥、未来等的源代码
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- Python中的for循环与C++有何不同
- 难以理解某些人解决IOI问题的源代码
- 使用g++编译hdf5源代码
- 如何使用C++读取另一个程序中的源代码输出
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- C++出现控制台错误.我无法识别源代码的问题
- 在C++中释放内存期间,迭代器与指针有何不同
- Qt Quick,如何更改 Ui 源代码?
- 将所有 URL 组织在类中的一个位置
- 组织源代码(C++)
- 导出 html 时,组织模式无法突出显示C++源代码
- 平台独立性:它与将源代码从一个操作系统移动到另一个操作系统有何不同
- Qt源代码是如何组织的
- 将组织模式表数据传递到组织模式c++源代码块中
- 从C++源代码中打开一个emacs组织模式文件,并自动创建一个项目