2013-09-17 4 views
-3

Я C++ разработчика и я мигрирую в python, я мешать:Объяснения супер (ИмяКласс, самость) .__ INIT __()

def __init__(self): # definition of constructor 
    super(ClassName,self).__init__() 

Но я не знаю ни одной идеи на второй линии , Можете ли вы объяснить вторую строку в C++?

+0

Класс, который содержит этот метод унаследованный от суперкласса под названием 'ClassName'. Поэтому в конструкторе этого нового класса используется метод '__init__' суперкласса. т. е. используется конструктор его родительского класса. – smac89

+0

Предотвращение среднего я вижу в строках кода ... – PersianGulf

+0

@Oleksiy Извините, но это довольно грубо. Первым языком OP может быть не Enligsh – TerryA

ответ

1

Эквивалент этой C++ код:

#include <iostream> 
using std::cout; 

class parent { 

protected: 
    int n; 
    char *b; 
public: 
    parent(int k): n(k), b(new char[k]) { 
     cout << "From parent class\n"; 
    } 
}; 

class child : public parent { 

public: 
    child(const int k) : parent(k){ 
     cout << "From child class\n"; 
     delete b; 
    } 
}; 


int main() { 
    child init(5); 
    return 0; 
} 
1

В C++ нет точного эквивалента. Пожалуйста read this хорошего объяснения :-)

В очень простых (одиночном наследовании) случаях, линия вы даете просто вызывает __init__ метод ClassName сек родительского класса.

+0

Похоже на эквивалент 'ClassName(): Base() {}'. – chris

Смежные вопросы