首页 > 代码库 > C++/CLI 托管C++之类、属性封装【7】
C++/CLI 托管C++之类、属性封装【7】
CLI封装类时,涉及确定性析构与非确定性析构,属性封装使用property。
【1】C++导出类
class EXPORTDLL_CLASS CAddSub { public: CAddSub(){ m_len = 0; } ~CAddSub(){ } public: int Add(int x, int y){ return x+y; } int Sub(int x, int y){ return x-y; } int GetLength() { return(m_len); } void SetLength(int len){ m_len = len; } private: int m_len; };
【2】CLI类封装
/// <summary> /// 4 类测试 /// </summary> public ref class AddSubCls { public: AddSubCls() { m_pCls = new CAddSub(); } !AddSubCls() //确定性释放 { delete m_pCls; } ~AddSubCls() //非确定性释放 { this->!AddSubCls(); } public: Int32 Add(Int32 x, Int32 y) { return(m_pCls->Add(x, y)); } Int32 Sub(Int32 x, Int32 y) { return(m_pCls->Sub(x, y)); } property Int32 Length { Int32 get() { return(m_pCls->GetLength()); } void set(Int32 len) { m_pCls->SetLength(len); } } private: CAddSub *m_pCls; };
C#测试函数:
AddSubCls addSubCls = new AddSubCls(); int sum = addSubCls.Add(1, 4); addSubCls.Length = 6;
C++/CLI 托管C++之类、属性封装【7】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。