与えられたxとyは同じサイズですが、yには別の機能があります。どのようなものがsizeofに含まれています、そして何がありませんか?なぜsizeofは機能を気にしませんか?
struct x
{
double a;
double b;
double c;
double d;
};
struct y
{
double a;
double b;
double c;
double d;
y(double q, double r, double s, double t) : a(q), b(r), c(s), d(t) {};
};
std::cout << sizeof(x)-sizeof(y) <<std::endl;
'y()'は仮想ではありませんか? – EOF
各structインスタンスはそれ自身の補数を持つため、データメンバはstructのサイズに貢献します。通常の関数メンバは、struct型ごとに1つしかないので、構造体には含まれていません。 –
メンバ関数は、クラス型への参照を最初のパラメータとして取る自由関数とほぼ同じと見なすことができます。 – Justin