zoukankan      html  css  js  c++  java
  • 面向对象模型初探

    成员变量和函数的存储

    c++实现了“封装”,那么数据(成员属性)和操作(成员函数)是什么样的呢?

    “数据”和“处理数据的操作(函数)”是分开存储的。

      c++中的非静态数据成员直接内含在类对象中,就像c struct一样。

      成员函数(member function)虽然内含在class声明之内,却不出现在对象中。

      每一个非内联成员函数(non-inline member function)只会诞生一份函数实例.

    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    using namespace std;
    
    class Person
    {
    public:
        int m_A;   //非静态成员变量,属于对象身上  打印结果为int的size  4
        void func() {}; //非静态成员方法 不属于对象身上       结果仍然是 4
        static int m_B;  //静态成员变量 不属于对象身上       结果      4
        static void func2() {}; //静态成员方法 不属于对象身上    结果  4
        double m_C;         //字节对齐 int占4字节 double占8字节 所以以double为准  结果是16
    };
    
    void test701()
    {
        //空类的大小为1 每个实例的对象 都是独一无二的地址, char维护这个地址
        cout << "sizeof (Person) =" << sizeof(Person) << endl;   //当类中什么都没有时  结果  1
    }
    
    int main()
    {
        system("Pause");
        return 0;
    }

    结论:非静态成员变量,才属于对象身上

  • 相关阅读:
    内置函数的补充
    python3 集合中的常用方法
    Salesforce: ISCHANGED在workflow中的使用
    Salesforce: setTreatTargetObjectAsRecipient的使用
    python实现用户登录次数太多账号"锁定"
    docker命令
    scrapy框架的安装
    分布式爬虫
    scrapy框架mongodb正规存储
    redis
  • 原文地址:https://www.cnblogs.com/yifengs/p/15167478.html
Copyright © 2011-2022 走看看