从C语言被发明开始,sizeof就是一个运算符,也是C语言中除了加减乘除以外为数不多的特殊运算符之一。而C++引入类类型之后,sizeof的定义也随之进行了扩展。
在C++98标准中,对非静态成员变量使用sizeof是不能通过编译的。而在C++11中,对非静态成员变量使用sizeof操作是合法的。例如:
class Point
{
public:
Point() {};
int i = 10; //非静态成员变量
};
int main()
{
auto i = sizeof(Point::i); //对非静态成员变量sizeof
}