クラスの宣言を行う際には、どのメンバーを公開し、どのメンバーは公開しないかを
決めます。すなわち、ある変数や関数は、自分のクラス内からしかアクセスできないようにするか、
どの変数・関数はクラス外からアクセスしても良いようにするかです。
例えば、ofstreamクラスでは、getline関数のようにmainから呼んでも良いような物を
公開しても良い関数と言い、ファイルディスクリプタのように、mainから触ることのできない
変数を公開しないと言います。
公開しても良いものを「public(公開)」と言います。mainのようにクラス外から
アクセスできないメンバーを「private(私有)」または、「protected(保護)」
と言います。
privateなメンバーは自分のクラスからしかアクセスできません。protectedなメンバーは
自分のクラスとその子クラス(後述)からしかアクセスできません。また、公開されていない
関数のことを「ヘルパー関数」と呼ぶこともあります。
基本的に、メンバー変数はすべてprotectedかprivateにします。そしてその変数を
取得したい場合は「get_???」のような関数を用意し、その関数を経由してメンバー変数を
取得するようにします。これはカプセル化のところで説明しました。
このようにどのメンバーを公開し、どのメンバーを非公開にするかを決めたらいよいよ
宣言をします。宣言は以下のようにします。
class TestClass{
public:
void PublicFunc1();
int PublicFunc2(int);
protected:
void ProtectedFunc1();
char ProtectedFunc2();
private:
void PrivateFunc1();
char* PrivateFunc2();
public:
char ch;
protected:
char* filename;
private:
int size;
};
|
赤字の関数・変数はpublic、青字の関数・変数はprotected、緑字の関数・変数はprivateに
なります。