在C++中,类名后使用冒号的用法

28

这是从一个黑莓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

这是什么意思?

3个回答

41
这意味着 ApplicationUI 继承自类 QObject 的所有方法和成员变量。使用 public 表示 QObject 的公共方法和成员也是在 ApplicationUI 中公开的。

1
那么,冒号是extend关键字的另一个名称吗? - Ari
不是这样的,因为C++中没有这个关键字。 - paddy
哦,看来我把它和 Java 搞混了。而且应该使用 "extends"。 - Ari

6

冒号后面列出的类是应用程序界面类(ApplicationUI)继承自哪个类。


1

这里是简单的代码片段:

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;

    }
}

}

只需简单地从class1继承到class2,希望能对某些人有所帮助! - Vamsi Krishna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接