`
jnn
  • 浏览: 288324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

读取配置文件动态创建对象[C++](5)

    博客分类:
  • OO
阅读更多

 

额外收获

 

AppenderFactory 返回的指针是 SharedAppenderPtr

class   NullAppenderFactory : public   AppenderFactory {

               public :

        SharedAppenderPtr   createObject ( const   Properties & props )

         {

            return   SharedAppenderPtr ( new   log4cplus :: NullAppender ( props ));

        }

        tstring   getTypeName () {

            return   LOG4CPLUS_TEXT ( "log4cplus::NullAppender" );

        }

};

LayoutFactory 中返回的是 std::auto_ptr 指针

  class   TTCCLayoutFactory : public   LayoutFactory {

    public :

        std :: auto_ptr < Layout > createObject ( const   Properties & props )

        {

            std :: auto_ptr < Layout > tmp ( new   log4cplus :: TTCCLayout ( props ));

            return   tmp ;

        }

        tstring   getTypeName () {

            return   LOG4CPLUS_TEXT ( "log4cplus::TTCCLayout" );

        }

    };

这两者之间有什么样的区别联系 ?

通过 auto_ptr 可以知道对象实例在返回之后 , 需要将对象的生命周期交给外部的使用者 , 由使用者负责堆对象实例的析构工作 .

分析成果

配置文件的定义实现 , 包含的基本类 , 以及这些类的实现 .

对于实现的动态配置的考虑 :

1.        通过生成 RegistryFactory 完成所有需要加载的对象的工厂方法的初始化 ,

2.        分析配置文件来实现不同方法的调用的实现

3.        加载完成 Configure 文件之后 , 既实现的基本的数据的获取和采集功能 .

分享到:
评论

相关推荐

    c++读取配置文件

    在C++编程中,读取配置文件是一项常见的任务,它允许程序在运行时根据外部文件中的设置进行调整,而不是硬编码这些参数。本教程将详细讲解如何使用C++读取配置文件,特别是针对TXT格式的文件,因为它们简单且易于...

    c++使用spdlog整合读取配置文件使用

    本文将详细介绍如何在C++项目中整合`spdlog`,创建一个`message`类来包装日志功能,并读取外部配置文件以实现灵活的日志管理。 首先,`spdlog`库提供了多种日志级别(如`trace`, `debug`, `info`, `warn`, `error`,...

    从配置文件动态创建菜单

    标题“从配置文件动态创建菜单”揭示了我们讨论的主题,即通过读取配置文件(可能是JSON、XML或YAML格式)来构建应用的菜单结构。这样的设计模式有诸多优点,比如灵活性、可扩展性和易于维护性。 描述“从配置文件...

    ubuntu系统读取ini配置文件

    本模块提供了一种在Ubuntu环境下使用C++读取INI配置文件的方法,使得开发者能方便地获取和修改配置信息。以下是关于这个功能模块的关键知识点和实现细节: 1. **INI文件格式**:INI文件是一种简单的文本格式,通常...

    VC读取动态配置文件

    1. **读取配置文件**:`GetPrivateProfileString`用于读取配置文件中的键值。函数原型如下: ```cpp DWORD GetPrivateProfileString( LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefault, LPTSTR ...

    读取配置文件的简单方式

    在IT开发过程中,读取配置文件是一个常见的任务,它允许我们动态地管理应用程序的设置,如数据库连接字符串、API密钥或系统参数。本篇文章将深入探讨如何以简单的方式读取本地配置文件,并结合CListBox控件实现中...

    vs2008写入读取配置文件操作

    1. **读取配置文件**: - XML文件:利用CoCreateInstance创建MSXML的DOM对象,然后调用load方法加载文件,通过IXMLDOMNode接口获取和解析元素及属性。 - INI文件:使用GetPrivateProfileString读取特定键值对,...

    c++读取lua文件配置测试

    总结,C++通过适当库与Lua结合,能灵活地处理配置文件,提供动态配置更新的能力,这对于需要频繁调整配置的软件项目来说非常有用。在VS2012环境中,可以便捷地构建这样的系统,实现高效且安全的配置管理。

    C++动态生成对象

    TinyXML-2是一个小型、快速且易于使用的C++ XML解析器,它能将XML数据读取到DOM(文档对象模型)结构中,然后可以遍历这个结构并将其转换回XML字符串,或者将对象的状态写入XML文件。 在C++中,实现对象序列化通常...

    c++读取lua配置文件的源代码

    本示例将详细介绍如何在C++中读取Lua配置文件并将其转换为JSON格式。 首先,我们需要在C++项目中集成Lua库。这通常涉及下载Lua源代码,编译为静态或动态库,并在C++项目中链接。确保你正确地配置了头文件路径和库...

    C++解析(读取)xml文件

    在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,广泛应用在配置文件、数据交换和文件存储等方面。C++作为一款强大的编程语言,虽然原生并不支持XML处理,但可以通过第三方库...

    C# WinForm动态加载DLL通过配置文件

    2. **读取配置文件**:在程序启动时,使用`ConfigurationManager.AppSettings`读取配置文件中的DLL路径。 ```csharp using System.Configuration; string dllPath = ConfigurationManager.AppSettings["DynamicDll...

    vc通过配置文件实现自定义界面

    2. 编写解析器:创建一个解析器读取配置文件,将文件中的数据转换为程序可以理解的对象或变量。这可能涉及到DOM、SAX等XML解析库,或直接处理INI文件的API。 3. 绑定控件属性:在程序初始化或用户选择皮肤时,遍历...

    项目生成与读取配置文件测试

    本项目名为"项目生成与读取配置文件测试",主要关注的是如何在代码中创建、读取和处理这些配置文件。这里我们将详细探讨配置文件的重要性、常见格式、读取方式以及在实际项目中的应用。 1. 配置文件的重要性: - ...

    C++简单的配置文件读取调用源码

    在C++编程中,处理配置文件是常见的任务,它允许程序根据不同的环境或用户需求动态地改变行为。本文将深入探讨如何使用C++通过map来读取和调用配置文件,以及提供一个简单的源码实现。 配置文件通常采用文本格式,...

    利用宏简化配置文件读写的类

    配置文件通常用于存储应用的设置、参数或特定环境的信息,以便程序在运行时能够动态调整行为。本篇文章将探讨如何通过宏来简化配置文件的处理,提高代码的可读性和可维护性。 首先,我们关注"ConfigBase.h"这个...

    XML文件配置C++程序

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它在软件开发中,特别是C++编程中,常被用来进行配置文件管理。C++程序使用XML文件作为配置可以提供一种灵活且可读性强的方式来存储和管理...

    VS2010获取配置文件内容

    下面是一个简单的示例,展示如何使用`CIniFile`来读取配置文件: ```cpp #include #include #include CIniFile iniFile; iniFile.Init("config.ini", TRUE); // 初始化配置文件,TRUE表示创建文件如果不存在 /...

    UE4 C++JSON读取示例.zip

    // 创建一个文件路径对象 FFileHelper* FileHelper = &FFileHelper::Get(); // 检查文件是否存在 if (!FileHelper-&gt;Exists(*FilePath)) { UE_LOG(LogTemp, Error, TEXT("JSON文件不存在: %s"), *FilePath); ...

    dev—C++5 配置opencv2.2

    完成以上步骤后,创建一个新的项目或打开一个现有的项目,尝试编写一个简单的OpenCV程序,比如读取一张图片并显示出来,来测试OpenCV是否配置成功。 ```cpp #include using namespace cv; int main() { Mat img...

Global site tag (gtag.js) - Google Analytics