在Qt中,moc文件的作用是实现Qt的元对象系统,扩展一些c++不支持的特性:
信号和槽机制;
动态属性;
运行时的类型;
Qt的connect函数;
QML元信息注册。
moc(Meta-Object Compiler) 是 Qt 自带的预处理器,它会:
对声明了 Q_OBJECT 宏的类自动生成一个 C++ 源文件(moc_xxx.cpp),用于实现上述特性。
你在类中使用了 Qt 元对象系统的特性(比如 signals, slots, Q_PROPERTY, Q_OBJECT 宏)时,就需要生成 moc_XXX.cpp 文件。