1. ホーム
  2. c++

[解決済み】クラスコードをヘッダーファイルとcppファイルに分離する方法

2022-04-19 08:51:07

質問

単純なクラスの実装と宣言のコードを新しいヘッダーファイルとcppファイルに分離する方法に迷っています。例えば、次のようなクラスのコードをどのように分離すればよいのでしょうか?

class A2DD
{
  private:
  int gx;
  int gy;

  public:
  A2DD(int x,int y)
  {
    gx = x;
    gy = y;
  }

  int getSum()
  {
    return gx + gy;
  }
};

解決方法は?

クラス宣言はヘッダーファイルの中に入ります。このとき重要なのは #ifndef インクルードガード 現在、ほとんどのコンパイラは #pragma once . また、privateを省略していますが、デフォルトではC++のクラスメンバはprivateになっています。

// A2DD.h
#ifndef A2DD_H
#define A2DD_H

class A2DD
{
  int gx;
  int gy;

public:
  A2DD(int x,int y);
  int getSum();

};

#endif

で、実装は CPP ファイルになります。

// A2DD.cpp
#include "A2DD.h"

A2DD::A2DD(int x,int y)
{
  gx = x;
  gy = y;
}

int A2DD::getSum()
{
  return gx + gy;
}