zoukankan      html  css  js  c++  java
  • c/c++ 类成员变量,成员函数的存储方式,以及this指针在c++中的作用

    c/c++ 类成员变量,成员函数的存储方式,以及this指针在c++中的作用

    c++不会像上图那样为每一个对象的成员变量和成员函数开辟内存空间,
    而是像下图那样,只为每一个对象的成员变量开辟空间。成员函数的只开辟一个共用的空间,所有对象的都可以访问这个公共的空间。

    但是就产生了一个问题,当某一个对象去调用某个成员函数的时候,这个成员函数怎么才能知道是哪个对象调用的它呢?

    c++在某一个对象调用某个成员函数的时候,把这个对象的地址,隐式地作为这个函数的参数,传给了成员函数,所有可以在没成员函数里显示的使用this指针。

    可以用下面的程序验证上面的理论。
    打印类占用内存的大小和对象占用内存的大小,就可以看出来,只有成员变量占用的内存空间(注意,内存对齐)。

    #include <iostream>
    using namespace std;
    
    class CGood{
    
      int amount;
      float price;
      float total_value;
      char name[21];
    };
    
    int main(){
      cout << sizeof(CGood) <<endl;
      CGood c1;
      cout << sizeof(c1) <<endl;
    }
    
  • 相关阅读:
    DOM--6 向应用程序中加入ajax
    javascript优化--12模式(设计模式)03
    javascript优化--11模式(设计模式)02
    javascript优化--14模式2(DOM和浏览器模式)
    mvc-9测试和调试
    mvc-10部署
    mvc-6依赖管理
    less
    css3 总结03
    css3 总结02
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/9479362.html
Copyright © 2011-2022 走看看