namespace命名空间成员类的声明
2013-05-21 01:08
309 查看
namespace命名空间成员类的声明
这其实是QT空项目的架构!!
[user:test] ls
class.h main.cpp pub.cpp pub.h
[user:test] cat class.h
[user:test] cat pub.h
[user:test] cat pub.cpp
[user:test] cat main.cpp
编译运行:
[user:test] g++ -c pub.cpp
[user:test] g++ main.cpp pub.o
[user:test] ls
a.out* class.h main.cpp pub.cpp pub.h pub.o
[user:test] ./a.out
pub
myClass
[user:test]
这其实是QT空项目的架构!!
[user:test] ls
class.h main.cpp pub.cpp pub.h
[user:test] cat class.h
/// @file class.h /// @brief /// @author EastonWoo /// 0.01 /// @date 2013-05-21 #include <stdio.h> class pub { public: pub() { printf("pub\n"); } }; namespace UI { class myClass : public pub {}; //花括号不可少,否则报以下错误: //class.h:20:11: error: forward declaration of ‘class UI::myClass’ }
[user:test] cat pub.h
// @file pub.h /// @brief /// @author EastonWoo /// 0.01 /// @date 2013-05-21 namespace UI { class myClass; //命名空间成员(myClass)声明。这样class.h就可以不用编译进来了。 //好处在于:如果class.h经常要修改。pub.h就基本不用变了。 //这里的UI::myClass 和 下面的class myClass是两个不一样的类, //他们在内存中的存放的位置是两个地方,一个在命名空间里,另一个 //在全局空间里。 } class myClass { public: myClass(); UI::myClass * ui; };
[user:test] cat pub.cpp
/// @file pub.cpp /// @brief /// @author EastonWoo /// 0.01 /// @date 2013-05-21 #include <stdio.h> #include "pub.h" #include "class.h" myClass::myClass() { ui = new UI::myClass; printf("myClass\n"); }
[user:test] cat main.cpp
/// @file main.cpp /// @brief /// @author EastonWoo /// 0.01 /// @date 2013-05-21 #include <stdio.h> #include "pub.h" int main() { myClass my; return 0; }
编译运行:
[user:test] g++ -c pub.cpp
[user:test] g++ main.cpp pub.o
[user:test] ls
a.out* class.h main.cpp pub.cpp pub.h pub.o
[user:test] ./a.out
pub
myClass
[user:test]
相关文章推荐
- C#基础知识C#中的类是利用命名空间组织起来的。命名空间提供了一种从逻辑上组织类的方式,防止命名冲突。 命名空间声明 用namespace 关键字用于声明一个命名空间。此命名空间范围允
- C++_命名空间namespace 与 using编译指令 与 using声明使用。
- Struts2 Namespace_命名空间
- 「命名空间内部使用的名字的查找」与「类成员定义中使用的名字的查找」的区别
- C++ 命名空间namespace
- PHP命名空间(Namespace)的使用详解
- 第十一节,命名空间namespace
- C++基础积累(1)using namespace potter 自定义命名空间和使用
- c++primer学习笔记(3.1)命名空间的using声明
- Spring3.0_命名空间 namespace 浅析
- .Net 2.0 新功能:命名空间别名限定符(namespace alias qualifier)
- PHP命名空间(Namespace)的使用详解
- 如何在XSLT样式表中声明命名空间
- PHP命名空间(Namespace)初探
- C++ 命名空间(十六)--namespace、using..
- namespace命名空间与define预处理
- c#面向对象基础 静态成员、构造函数、命名空间与类库
- C++ using namespace std 详解与命名空间的使用
- XAML实例教程系列 - 命名空间(NameSpace)
- Ext源码分析:解析Ext的命名空间,Ext.namespace