class Hoge {
int n;
}; とした場合、nは変数の定義になると思います。
この n を静的変数にした場合
class Hoge {
static int n;
};
int Hoge::n; のように、クラス外にnの実態を定義する必要があります。
これらを考えると、静的変数でないメンバ変数を、class内に記述した場合
変数の定義として扱われ、静的メンバ変数をclass内に記述した場合
それは宣言であり、class外でのインスタンス化を定義と考えるべきでしょうか?
それとも、class内に記述した静的変数は定義であり
class外の記述は、インスタンス化しただけであると考えるべきでしょうか?