ページ 11

privateかpublicか

Posted: 2014年3月26日(水) 16:47
by さんとす
C++の参考書を読みながら勉強しているのですが質問があります。

コード:

class test
{
public:
	test();
	~test();

	void update();
	void draw();

	void calc1();
	void calc2();
	void calc3();

	void set_type(int t)
	{
		type = t;//タイプをもらう
	};

private:
	int type;
	//以下いろいろ

}; 
[code = cpp]#include "practice.h"

test::test()
{
type = 0;
}

test::~test()
{
}

void test::update()
{
//タイプごとに分ける
switch(type)
{
case 1:
calc1();
break;
case 2:
calc2();
break;
case 3:
calc3();
break;
default:
break;
}
}

void test::draw()
{
}

void test::calc1()
{
//いろいろ
}

void test::calc2()
{
//いろいろ
}

void test::calc3()
{
//いろいろ
} [/code]
上のようなコードを作ったのですが(calc1,2,3はそれぞれ違うことをしています。)
ヘッダーのクラスを書くときにかcalc1,2,3はpublicに書いてますが、「public」は他のクラスなどにインスタンスを生成すれば呼び出すことができる・・と覚えてるのですが、ここで他のクラスなど(main文など)で呼び出すのは「update()」であってcalc1,2,3はpublicである必要がないように思えてしまいます。privateのメンバ変数の下(上)に書くのが妥当だと・・・皆様でしたらこの場合privateにcalc1,2,3を書くんでしょうか?
この質問は、現在の参考書は関数はすべて「public」の位置に書いているので、関数はpublicにのみ書くもの?と思ってしまっているからです。
知識が浅いゆえ当たり前のことでも確認を取らないと不安で・・・
よろしお願いします。

Re: privateかpublicか

Posted: 2014年3月26日(水) 17:05
by h2so5
外部からアクセスしない関数は、privateにするべきです。

Re: privateかpublicか

Posted: 2014年3月26日(水) 17:17
by softya(ソフト屋)
必要最低限のメンバ関数をpublicにします。
出来るだけprivateになるように気をつけてプログラミングしないとカプセル化とは言えませんので。