为什么sizeof不关心功能?

Car*_*bon -3 c++

鉴于以下内容,您将看到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;
Run Code Online (Sandbox Code Playgroud)

dus*_*uff 6

sizeof中包含哪些内容,哪些内容不包含在内?

sizeof()仅包含必须作为每个类型实例的一部分存储在内存中的内容.(对于类或结构,它返回需要为实例分配的内存量.)

由于函数对于每个实例都是相同的struct y,因此它不作为结构的一部分存储 - 定义它只允许将函数作为结构上的方法调用.但是,如果它是一个函数指针,则指针将成为结构的一部分,并且会对其大小产生影响.