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;

 }


目录
相关文章
|
4天前
|
存储 编译器 C语言
c++的学习之路:5、类和对象(1)
c++的学习之路:5、类和对象(1)
19 0
|
3天前
|
C++
c++的学习之路:7、类和对象(3)
c++的学习之路:7、类和对象(3)
19 0
|
2天前
|
设计模式 Java C++
【C++高阶(八)】单例模式&特殊类的设计
【C++高阶(八)】单例模式&特殊类的设计
|
2天前
|
编译器 C++
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
|
6天前
|
存储 安全 C语言
【C++】string类
【C++】string类
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
8天前
|
编译器 C++
标准库中的string类(上)——“C++”
标准库中的string类(上)——“C++”
|
8天前
|
编译器 C++
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(中)——“C++”
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(中)——“C++”
|
8天前
|
存储 编译器 C++
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(上)——“C++”
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(上)——“C++”
|
10天前
|
C++
【C++成长记】C++入门 | 类和对象(下) |Static成员、 友元
【C++成长记】C++入门 | 类和对象(下) |Static成员、 友元