C++におけるファイルの分割はクラス定義単位で行う
### ヘッダファイル
マクロ定義、型定義、プロトタイプ宣言の3つを書くのが基本
C++ではクラスを利用するには、そのクラスが提供するヘッダファイルを取り込む必要がある
以下のようなファイルがあったとする
class POS {
private:
int x;
int y;
public:
POS();
int setPos(int tmpx, int tmpy);
}
POS::POS(){
x = 0;
y = 0;
}
int POS::setPos(int tmpx, int tmpy){
x = tmpx;
y = tmpy;
return 0;
}
これを分割する場合
POS.h
#ifndef POS_H
#define POS_H
class POS {
private:
int x;
int y;
public:
POS();
int setPos(int tmpx, int tmpy);
}
#endif
POS.cpp
#include "POS.h"
POS::POS(){
x = 0;
y = 0;
}
int POS::setPos(int tmpx, int tmpy){
x = tmpx;
y = tmpy;
return 0;
}
つまり、最初にheader情報を見て、全体の流れを理解してからソースファイルを見ていくのね。※以前はcppを先に見て、.hは付加情報かと思っていました…orz
HeadersSyncState::ProcessingResult HeadersSyncState::ProcessNextHeaders(const
std::vector
で、ProcessingResult ProcessNextHeaders となっているのは、headerssync.hで、ProcessingResultの構造体を示していたので、このProcessingResultの型で返却して欲しい という書き方なのね。
struct ProcessingResult {
std::vector<CBlockHeader> pow_validated_headers;
bool success{false};
bool request_more{false};
};