zoukankan      html  css  js  c++  java
  • c++.net 托管类封装非托管类

    C++.net中非托管的代码虽然在托管里面可以直接使用,但是有时候却会被限制。比如当需要用托管里面的 ArrayList 存储一个非托管的对象的时候就需要用一个托管的类把这个非托管的类封装一下,其他的封装的原因我也没想到,刚开始接触c++.net,基本是需要什么学什么,我是这个原因才去封装的。

     

    比如一个非托管的类如下

     

    class serverInfo

    {

    public:

    serverInfo();

    ~serverInfo();

    string CSTR_DBIPADDRESS; //数据库ip地址



    };

     

     

    然后对其进行封装

     

    ref class serverInfoManaged

    {

    public:

    serverInfoManaged():m_sc(
    new serverInfo()){}

    ~serverInfoManaged()

    {

    delete m_sc;

    }



    String
    ^ GetDBIP()

    {

    return (gcnew String(m_sc->CSTR_DBIPADDRESS.c_str()));

    }

    void SetDBIP(String^ DBIP)

    {

    m_sc
    ->CSTR_DBIPADDRESS = convertStringtoStr(DBIP);

    }

    private:

    !serverInfoManaged()

    {

    delete m_sc;

    }



    private:



    serverInfo
    * m_sc;

    };

     

     

    然后就可以直接使用了

    比如在Arraylist添加server对象

     

     

    ArrayList^ AddServers()

    {

    ArrayList
    ^ al = gcnew ArrayList();

    For (
    int i = 0; i<5; i++)

    {

    serverInfoManaged
    ^ sc = gcnew serverInfoManaged();

    sc
    ->SetDBIP("127.0.0.1");

    al
    ->Add(sc);

    }

    return al;

    }
  • 相关阅读:
    django学习笔记(一)
    Python之函数进阶
    Python之函数初识
    Python之文件操作
    基础补充
    字典
    神奇的列表
    万能的字符串
    Python基础(二)
    使用paramiko进行ssh连接
  • 原文地址:https://www.cnblogs.com/shapherd/p/UnmanagedToManaged.html
Copyright © 2011-2022 走看看