如何区分两个Widget类
首先要明白C++命名空间的概念,见 https://www.runoob.com/cplusplus/cpp-namespaces.html
另外,对于命令空间,有如下解释:(见 https://blog.youkuaiyun.com/tuziaaa/article/details/102972065 )
- 命名空间可以是不连续的
- 命名空间可以定义在几个不同的部分。
- 命名空间的定义可以不连续的特性使得我们可以将几个独立的接口和实现文件组成一个命名空间。此时命名空间的组织方式类似于我们管理自定义类及函数的方式(接口和实现分离):
- 命名空间的一部分成员的作用是定义类,以及声明作为类接口的函数及对象,则这些成员应该置于头文件中。
- 命名空间成员的定义部分则置于另外的源文件中。
再看程序,首先看命名空间的定义部分,在widget.h里
namespace Ui {
class Widget;
}
再看实现部分,在ui_widget.h里
namespace Ui {
class Widget: public Ui_Widget {};
} // namespace Ui
从实现部分可以看出,对于命名空间Ui里的Widget类,继承于Ui_Widget类,由于类体为空,所以就是Ui_Widget类。
本文详细解析了如何通过C++命名空间概念区分不同Widget类,强调了命名空间在类定义与实现分离中的作用,并通过具体示例展示了命名空间的连续与非连续定义方式。
1413

被折叠的 条评论
为什么被折叠?



