`
feipigwang
  • 浏览: 783786 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

规模较大的C++项目代码层次结构

阅读更多

1.前言

C++项目中如果代码层次结构不好,非常容易变得难以维护。对于规模较大的项目而言,必须将整个项目划分成若干模块进行开发。

2.模块

模块包括可执行文件,动态库和静态库。

2.1应用层

最上层为应用层,表现为可执行文件。

本层代码应主要进行界面控制,尽量不要涉及复杂逻辑。

2.2动态库层

动态库层作为逻辑模块的主体。采用动态库的好处是将复杂应用拆分成可以独立分发的子模块,便于单独管理。

使用动态库极易陷入动态库地狱(dll hell),因此应设法避免动态库直接的交叉依赖。原则上我公司开发的动态库,只能依赖于内核层动态库,或第三方动态库。应用层动态库直接不可以相互依赖。

鉴于上述动态库问题,动态库层在实际开发中尽可能少包含源代码,只包含导出函数列表。函数实现由静态库承担。

2.3静态库层

静态库是真正的模块层,是代码重用的基本单元。代码通过分组,直接编译成静态库,供其他层使用。

<!-- Root decorator: all decisions about how a page is to be decorated via the inline decoration begins here. --><!-- Switch based upon the context. However, for now, just delegate to a decorator identified directly by the context. -->
分享到:
评论

相关推荐

    c++代码实现分层聚类

    在这个层次结构中,每个数据点可以被视为一个单独的簇,也可以是更大簇的组成部分。根据聚类的方式,分层聚类可以分为凝聚型(agglomerative)和分裂型(divisive)。这里,我们主要关注凝聚型分层聚类,它通过逐次...

    C++框架类图--grass项目

    "grass项目"的接口设计简洁,意味着学习成本较低,而其结构明朗则表明了其扩展性较强。 在实际应用中,"grass项目"可能适用于各种需要C++实现的场景,如游戏开发、桌面应用程序、服务器端逻辑等。它的加载插件功能...

    C++C代码审查表 文件结构

    - 合理的目录结构有助于组织和查找代码,遵循模块化原则,使项目结构清晰。 - 版权和版本声明应完整,以保护知识产权并方便追踪代码的演变。 2. **程序的版式**: - 适当的空行和空格可以使代码更易读,避免过于...

    C++实现的分层有限状态机v0.1

    顶层状态通常代表较大的行为模式,而下层状态则细化了这些模式。通过这种方式,HFSM可以更好地表示复杂系统中的并发和嵌套行为,同时保持代码的可读性和可维护性。 在C++中实现HFSM,需要关注以下几个关键点: 1. ...

    计算机体系结构 主存层次结构

    在这个项目中,通过使用C++编程语言,我们将深入理解并模拟计算机的主存层次结构,特别是Monitor主存和辅存之间的关系。 主存,也称为RAM(随机访问存储器),是计算机中用于临时存储运行程序和数据的快速可访问...

    数据结构与算法---C++版(Adam Drozdek)书中的源代码

    《数据结构与算法---C++版》是由Adam Drozdek编著的一本经典教材,它深入浅出地讲解了数据结构和算法的核心概念,并通过C++语言进行了实现。这本书不仅适合初学者,也对有一定经验的程序员有很高的参考价值。在...

    C++数据结构课程设计实现智能快递柜

    在本项目中,"C++数据结构课程设计实现智能快递柜"是一个基于C++编程语言的后台系统,它主要用于管理快递收发业务,无需前端界面,仅在操作员的工作台上运行。这个系统的设计和实现充分利用了C++的强大功能,特别是...

    学习C++的最大难度

    ### 学习C++的最大难度 C++是一种广泛使用的编程语言,在软件开发、系统编程以及高性能应用领域都有着不可替代的地位。然而,对于许多初学者乃至有一定经验的开发者来说,学习C++都面临着不小的挑战。本篇文章将从...

    狄泰 c++ 数据结构项目实战

    《狄泰C++数据结构项目实战》是一本深入探讨C++编程技术和数据结构的书籍,旨在帮助读者通过实践提升在IT领域的专业技能。书中涵盖了泛型编程、异常处理、多种线性数据结构以及图论算法等多个核心主题。 泛型编程是...

    《Visual C++高级编程及其项目应用开发》源代码

    通过实例,你可以看到如何设计和实现复杂的类层次结构,以及如何利用接口(abstract class)和模板(template)来提高代码的复用性。 3. **STL(标准模板库)**:C++的STL提供了容器(如vector、list、set、map等)...

    层次分析方法(AHP)VC源代码

    AHP的核心在于通过比较不同因素对决策目标的影响程度,将复杂的决策问题分解为一系列层次结构,并通过数值化的判断矩阵来量化这些因素之间的相对重要性。这种方法广泛应用于项目选择、资源分配、风险评估等领域。 ...

    Visual C++ MFC编程实例代码.rar

    这些类之间存在层次关系,形成了MFC的类层次结构,使得程序设计具有良好的模块化和可扩展性。 三、MFC的主要组成部分 1. 应用程序框架:CWinApp类是每个MFC应用程序的基础,负责初始化、运行和退出应用程序的逻辑...

    C++程序 二叉树源程序代码

    标题提到的"C++程序 二叉树源程序代码"是一个针对二叉树概念进行实践的项目,非常适合编程初学者用来深化理论知识并提升编程技能。 首先,我们要了解二叉树的基本概念。二叉树是由节点(或称为元素)组成的非线性...

    c/c++ 数据结构算法实现

    这个"数据结构算法实现"压缩包,很可能会包含这些数据结构和算法的具体C++代码实现,对于初学者来说,通过阅读和理解这些代码,可以加深对数据结构和算法的理解,提升编程技能。同时,这些实现也可以作为实际项目中...

    C++数据结构原理与经典问题求解(源代码)

    这本书的源代码包含了大量示例,旨在帮助读者理解并掌握数据结构的核心概念以及如何用C++来实现它们。通过对这些源代码的学习,读者可以提升自己的编程技巧,更好地应对实际工程中的复杂问题。 数据结构是计算机...

    谭浩强经典C++.pdf

    2. 继承:C++支持单继承和多继承,使得代码复用和构建层次结构变得更加便捷。 3. 多态性:虚函数和抽象类的引入使得C++能够实现运行时的多态性,增强了代码的灵活性和可扩展性。 4. 运算符重载:C++允许用户自定义...

    Thinking in C++(2nd)—c++的十四本经典书籍之一

    作者通过实际案例,帮助读者理解如何设计和使用类,以及如何利用继承来构建软件层次结构。 3. **模板与泛型编程**:第二版中,模板是重点讨论的内容之一。模板可以用于创建通用函数和类,实现代码重用,提高程序...

    Mastering Visual C++ pdf Micheal J Young

    这涉及到提供派生类的构造函数,访问基类成员,以及创建类层次结构。通过继承,开发者可以复用和扩展现有的代码,提高开发效率。章节还介绍了虚函数的使用,展示了如何通过虚函数处理类对象以及修改基类的行为,从而...

    50条C++编辑经验

    8. **语言之间的独立性**:学习C++不应受制于之前学过的其他语言,即使是C语言,因为C++的设计理念和语法结构都有其独特之处。 9. **掌握标准**:阅读《The Standard C++ Bible》(标准C++宝典),理解并掌握C++的...

    Google代码规范(C++)&lt;中文&gt;

    ### Google C++代码规范详解 #### 一、头文件 **1. #define的保护** 在C++中,为了防止同一个头文件被多次包含导致重复定义的问题,通常会在头文件的开头和结尾处使用`#ifndef`/`#define`/`#endif`这样的预处理器...

Global site tag (gtag.js) - Google Analytics