2011-01-12 6 views
6

Si heredo de una clase base y quiero pasar algo del constructor de la clase heredada al constructor de la clase base, ¿cómo hago eso?Constructor de base de llamadas en C++ CLI

Por ejemplo,

Si heredan de la clase de excepción que quiero hacer algo como esto:

en lenguaje C# lo hacemos de esta manera:

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

pero la forma de hacerlo en C++. net? trato de hacerlo de esta manera:

public ref class CppDynamicSyntaxLanguage : public DynamicOutliningSyntaxLanguage 
{ 
public: 
CppDynamicSyntaxLanguage (String ^key, bool secure) : 
    **CppDynamicSyntaxLanguage(key,secure)** {}; 
} 

pero tengo error 'MyEditor :: CppDynamicSyntaxLanguage': miembro de inicialización ilegal: 'CppDynamicSyntaxLanguage' no es una base o miembro de

"Gracias "

Respuesta

7

La clase base se llama DynamicOutliningSyntaxLanguage, no CppDynamicSyntaxLanguage.

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

Gracias "James McNellis" – user572312

1

¿Usted intentó:

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

que iba a funcionar en C++, no sabe acerca de .NET. Suponiendo DynamicOutliningSyntaxLanguage tiene un constructor que consume sting y bool.

+1

Gracias James McNellis – user572312

Cuestiones relacionadas