Qt 源码分析之元对象系统(一)
一、元对象系统
简单来说 Qt 元对象系统是对标准 C++ 的扩展。相比较其他高级语言java、python、php等,标准 C++ 为你做的工作实在是太少了,这样就使得开发人员写 C++ 很累,累的像 XXX 一样。特别是用 C++ 开发界面程序,那叫一个痛苦(这是针对大型软件)。
怎么办呢?既然标准不去做,那就让 Qt 来做吧,于是乎就诞生了 Qt 元对象系统。
一句话总结:Qt 元对象系统是为了方便程序开发,而对标准 C++ 做的扩展。
二、举例
比如我们用 C++ 写了一个类 CMathEx,这个类是对标准数学类的扩展,我们给这个类添加查找 3 个整数中最大值的函数,如下:
#define max(x, y) (x) > (y) ? (x) : (y)
class CMathEx
{
public:
CMathEx()
{
}
~CMathEx()
{
}
int Max(int a, int b, int c)
{
return max(max(a, b), c);
}
};
然后我们定义一个 CMathEx 类对象 m,就可以调用 Max 函数了,如下:
<