在c ++ CLI中调用基础构造函数

时间:2011-01-12 07:23:42

标签: .net c++-cli

如果我从基类继承并希望将继承类的构造函数中的某些东西传递给基类的构造函数,我该怎么做?

例如,

如果我从Exception类继承,我想做这样的事情:

在C#语言中,我们这样做:

public class CppDynamicSyntaxLanguage : DynamicOutliningSyntaxLanguage
{
  public CppDynamicSyntaxLanguage(string key, bool secure) :
   **base(key, secure)** {}
}

但如何在c ++。net?中执行此操作 我试着这样做:

public ref class CppDynamicSyntaxLanguage : public DynamicOutliningSyntaxLanguage 
{
public:
 CppDynamicSyntaxLanguage (String ^key, bool secure) : 
  **CppDynamicSyntaxLanguage(key,secure)** {};
}
但是我得到了 错误 'MyEditor :: CppDynamicSyntaxLanguage':非法成员初始化:'CppDynamicSyntaxLanguage'不是基础或成员

“谢谢”

2 个答案:

答案 0 :(得分:7)

基类名为DynamicOutliningSyntaxLanguage,而不是CppDynamicSyntaxLanguage

CppDynamicSyntaxLanguage (String ^key, bool secure) 
    : DynamicOutliningSyntaxLanguage(key,secure) { };

答案 1 :(得分:1)

你有没有尝试过:

class CppDynamicSyntaxLanguage: public DynamicOutliningSyntaxLanguage {
public:
    CppDynamicSyntaxLanguage(string key, bool secure):
        DynamicOutliningSyntaxLanguage(key, secure) {
    }
};

它可以在c ++中工作,不知道.net。假设DynamicOutliningSyntaxLanguage有一个消耗sting和bool的构造函数。