鑑於以下情況,您會看到x和y的大小相同,但是y具有附加功能。 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
數據成員對結構的大小起作用,因爲每個結構實例都有它們自己的補充;普通函數成員不會,因爲每個結構類型只有一個,並且它不包含在結構中。 –
可以將成員函數看作與引用類類型作爲第一個參數的自由函數幾乎相同。 – Justin