Использование двоеточия после имени класса в С++

Это заголовочный файл, извлеченный из программы blacklow 10 helloworld.

#ifndef ApplicationUI_HPP_
#define ApplicationUI_HPP_

#include <QObject>

namespace bb
{
    namespace cascades
    {
        class Application;
        class LocaleHandler;
    }
}

class QTranslator;

/*!
 * @brief Application object
 *
 *
 */

class ApplicationUI : public QObject
{
    Q_OBJECT
public:
    ApplicationUI(bb::cascades::Application *app);
    virtual ~ApplicationUI() { }
private slots:
    void onSystemLanguageChanged();
private:
    QTranslator* m_pTranslator;
    bb::cascades::LocaleHandler* m_pLocaleHandler;
};

#endif /* ApplicationUI_HPP_ */

Я смущен насчет оператора двоеточия сразу после объявления имени класса.

class ApplicationUI : public QObject

Что это значит?

Ответ 1

Это означает, что ApplicationUI наследует все методы и переменные-члены из класса QObject. Использование public означает, что общедоступные методы и члены QObject также общедоступны в ApplicationUI.

Ответ 2

Класс, указанный после: это класс, наследуемый классом ApplicationUI.

Ответ 3

Простой фрагмент кода здесь:

using System;

namespace ProgramCall
{

class Class1
{

    public int Sum(int A, int B)
    {
        return A + B;
    }

    public float Sum(int A, float B)
    {
        return A + B;
    }
}

class Class2 : Class1
{
    public int Sum(int A, int B, int C)
    {
        return A + B + C;

    }
}

}