かなりです。
クラスは、オブジェクトの作成のためのテンプレートであるという意味で「データ型と似ていますが、使用できるオブジェクトではありません。
このテンプレートを使用してオブジェクトのインスタンスを作成すると、そのオブジェクトを使用できます。必要な数だけインスタンスを作成することができます。インスタンスを変数と考えることができます。例えば
:
class Person
{
public:
Person() : name("Joe Bloggs") {}
std::string getName() { return name; }
void setName(std::string n) { name = n; }
private:
std::string name;
};
これは、人のためのクラス定義です。変数ではありません。まだ存在しないので、setNameを呼び出すことはできません。しかし、あなたがするとき:
あなたが割り当て、変更、および使用できる人のインスタンスを2つ作成しました。それらはインスタンスと呼ばれる変数です。
"データ形式"が何を意味するのか分かりませんが、無視してください。
宣言に関して - 宣言は何かのインスタンスが存在すると述べています。あなたがクラスを作成し、あなたのヘッダファイルが持っていた場合、例えば:
class foo
{
public:
foo(int value);
void bar();
private:
int x;
};
あなたは、ボイド、あなたはXと呼ばれる整数を持っていることを返す関数と呼ばれる棒を持っていることを宣言しています。
変数xにはメモリは割り当てられていません。また、定義もbarも提供されていないため、宣言に過ぎません。
void foo::bar()
{
//some code
}
と値でXを初期化(初期化子リストで)が作成された方法を制御しますfooのコンストラクタdefiniton:
foo::foo(int value) : x(value)
{
//some code
}
ソースファイルは、おそらくのようなバーの定義を提供しますなぜそんなに多くのdownvotes? – TeaOverflow
私は分かりません。質問は簡単に答えることができると思っていたので、効率的に返すことができるように質問を書く時間がかかりました。 – Ayfiaru
少し厳しいと思います。彼が既に本を読んでいて、混乱しているのであれば、彼らは正当な質問です。 –