Вызов базового конструктора в C ++ CLI - PullRequest
6 голосов
/ 12 января 2011

Если я наследую от базового класса и хочу передать что-то из конструктора унаследованного класса в конструктор базового класса, как мне это сделать?

Например,

Если я наследую от класса 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 ]

7 голосов
/ 12 января 2011

Базовый класс называется DynamicOutliningSyntaxLanguage, а не CppDynamicSyntaxLanguage.

CppDynamicSyntaxLanguage (String ^key, bool secure) 
    : DynamicOutliningSyntaxLanguage(key,secure) { };
1 голос
/ 12 января 2011

Вы пробовали:

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

Это сработало бы в c ++, не знаю о .net.Предполагая, что DynamicOutliningSyntaxLanguage имеет конструктор, который использует sting и bool.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...