zoukankan      html  css  js  c++  java
  • 非静态成员的sizeof

    在C++98中sizeof运算符只能作用于类的静态成员,或者对象的非静态成员,所以对于类的非静态成员,必须先构造一个对象,这是相当麻烦的。

     1 #include <iostream>
     2 using namespace std;
     3 
     4 struct People {
     5     int hand;
     6     static People *all;
     7 };
     8 
     9 int main() {
    10     People p;
    11     cout << sizeof(p.hand) << endl;
    12     cout << sizeof(People::all) << endl;
    13     cout << sizeof(People::hand) << endl; // C++98中错误,C++11中通过
    14 }

    在C++98中,或许可能通过一些小技巧来让sizeof计算类的非静态成员变量,例如:

    1 sizeof(((People*)0)->hand);

    但是在C++ 11中就可以直接使用如下方式:

    1 sizeof(People::hand)
  • 相关阅读:
    git
    搁置:vue-element-admin
    JS
    开发心得
    CSS
    VSCode(主进程)
    Vue
    axios
    滚动条出现的原理
    element-ui 1.4.13
  • 原文地址:https://www.cnblogs.com/lniwn/p/3387378.html
Copyright © 2011-2022 走看看