C++入門(2) ークラスとコロンー | 備忘のためのメモ

C++入門(2) ークラスとコロンー

C++のソースコードを見ていて、コロンを伴ったステートメントで戸惑った部分。

①クラスの定義でのコロン

class MainWindow
: public QMainWindow
{
  public:
    ・・・・・・・・・・・・・・・・
}
初めて見たとき、コロンで始まるステートメントがクラス名とクラスを包む波括弧の
間にあるという形が全く異質のものに見えて困惑した。

でも改行の位置が違うだけで、次のように書いたものも全部同じ。
class MainWindow :
public QMainWindow
{
  public:
    ・・・・・・・・・・・・・・・・
}

とか

class MainWindow : public QMainWindow
{
  public:
    ・・・・・・・・・・・・・・・・
}

一番基本的なのは最後の書き方のようで、これは
継承と言われるもの。
コロンの後に続くクラスの内容を引き継いだ新たなクラスを作ることを意味する。

②コンストラクタでのコロン
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

同じような形で書いてあったが、やっぱり改行の位置が違うだけ。

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

この場合は初期化子。
コロンの後に初期値を設定するものを書く。
カンマで区切って複数のものを指定することもできる。