C++ cli 为甚么要加以保护? Read,我遇到了一个简单的例子,这是非常适合我的,因为我在一些C++接口上做了一些课程,完成了整个工作:我第一次做了 ref class Wrapper { Native *pn; public: // resource acquisition is initialization Wrapper( int val ) { pn = new Native( val ); } // this will do our disposition of the native memory ~Wrapper(){ delete pn; } void mfunc(); protected: // an explicit Finalize() method—as a failsafe !Wrapper() { delete pn; } };

C++ cli 为甚么要加以保护? Read,我遇到了一个简单的例子,这是非常适合我的,因为我在一些C++接口上做了一些课程,完成了整个工作:我第一次做了 ref class Wrapper { Native *pn; public: // resource acquisition is initialization Wrapper( int val ) { pn = new Native( val ); } // this will do our disposition of the native memory ~Wrapper(){ delete pn; } void mfunc(); protected: // an explicit Finalize() method—as a failsafe !Wrapper() { delete pn; } };,c++-cli,C++ Cli,这个类与我到目前为止所写的内容完全一致。除了我没有实现Finalize方法之外。但是,当我想知道它的特殊性和用法,在我能更深入地理解它之前。。。我想知道将终结器方法放在受保护的范围内是否是一种普遍使用和良好习惯。终结器的访问修饰符基本上被忽略,因为终结器有一些特殊规则: 即使从类本身内部也不能直接调用它们。 当系统调用时,它们会自动调用基类终结器。 正式而言,终结器是在对象上声明的受保护虚拟方法:。在C语言中,不能在终结器上放置accessibility修饰符 在C++/cli中,您可以指定任何

这个类与我到目前为止所写的内容完全一致。除了我没有实现Finalize方法之外。但是,当我想知道它的特殊性和用法,在我能更深入地理解它之前。。。我想知道将终结器方法放在受保护的范围内是否是一种普遍使用和良好习惯。

终结器的访问修饰符基本上被忽略,因为终结器有一些特殊规则:

即使从类本身内部也不能直接调用它们。 当系统调用时,它们会自动调用基类终结器。 正式而言,终结器是在对象上声明的受保护虚拟方法:。在C语言中,不能在终结器上放置accessibility修饰符

在C++/cli中,您可以指定任何访问修饰符,但它基本上被忽略。也就是说,公开或保密都不会改变任何事情:特殊规则仍在执行

所以,我要说的是,继续按照惯例保护它