【发布时间】:2014-01-26 13:25:07
【问题描述】:
我有这门课:
ref class Wrapper {
protected:
Native *pn;
public:
Wrapper(int val) { pn = new Native( val ); }
};
然后我从中得出:
ref class DerivedWrapper : public Wrapper{
public:
DerivedWrapper(int val) {pn = new DerivedNative(val); }
}
编译器抱怨: 错误 C2248 ‘ Wrapper::pn’ : 无法访问在类 ‘Wrapper’ 中声明的私有成员
基类本地指针被明确保护,派生类应该可以随时访问它。我所有的直觉告诉我这应该有效。 ref 类有什么特别之处吗?
我正在使用 VS 2008 SP 1 进行编译
【问题讨论】:
-
这两个类是否在同一个程序集中?否则,不允许(直接)从基类 Assembly 导出
Native的类型,编译器将隐式将其更改为私有。但如果发生这种情况,您会收到警告。 -
为什么不在 DerivedWrapper 构造函数中调用基构造函数来初始化该字段?
-
你需要公共参考类
标签: c++-cli