2-成员变量和成员函数分开存储

简介: 2-成员变量和成员函数分开存储
#include<bits/stdc++.h>
using namespace std;
class Person {
public:
  Person() {
    mA = 0;
  }
  //非静态成员变量占对象空间
  int mA;
  //静态成员变量不占对象空间
  static int mB; 
  //函数也不占对象空间,所有函数共享一个函数实例
  void func() {
    cout << "mA:" << this->mA << endl;
  }
  //静态成员函数也不占对象空间
  static void sfunc() {
  }
};
int Person::mB=0;
int main()
{
  //成员变量和成员函数分开存储
  //在c++中,类内成员变量和成员函数分开存储
  //只有非静态成员变量才属于类 的对象 上 
  cout << sizeof(Person) << endl;
  //空对象占用内存空间为1
  //c++编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置
  //每个空对象也应该有一个独一无二的内存地址 
  system("pause");
  return 0;
}


相关文章
|
4天前
|
存储 编译器 程序员
【C++】类和对象①(什么是面向对象 | 类的定义 | 类的访问限定符及封装 | 类的作用域和实例化 | 类对象的存储方式 | this指针)
【C++】类和对象①(什么是面向对象 | 类的定义 | 类的访问限定符及封装 | 类的作用域和实例化 | 类对象的存储方式 | this指针)
|
4天前
|
存储 算法 C++
【C/C++ 关键字 存储类说明符】 深入理解C/C++中的static关键字:它的作用、限制和使用技巧
【C/C++ 关键字 存储类说明符】 深入理解C/C++中的static关键字:它的作用、限制和使用技巧
16 0
|
4天前
|
存储 C++
c++类和对象一对象特性一成员变量和成员函数分开存储
c++类和对象一对象特性一成员变量和成员函数分开存储
16 0
|
4天前
|
C++
【C++】结构体、类和引用
【C++】结构体、类和引用
33 0
|
6月前
|
存储 算法 C语言
27 C++ - 对象成员变量和函数的存储
27 C++ - 对象成员变量和函数的存储
21 0
|
10月前
|
C++
C++ 数据的共享 静态数据成员和静态函数成员
C++ 数据的共享 静态数据成员和静态函数成员
54 0
|
10月前
|
存储 算法 小程序
05-📝C++核心语法|面向对象3【 继承和派生、多态、静态成员、const成员、引用类型成员、VS的内存窗口】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
05-📝C++核心语法|面向对象3【 继承和派生、多态、静态成员、const成员、引用类型成员、VS的内存窗口】
|
10月前
|
存储 编译器 C语言
[C++ 提高] --- 类的存储 和 包含虚函数的类
[C++ 提高] --- 类的存储 和 包含虚函数的类
39 0
[C++ 提高] --- 类的存储 和 包含虚函数的类
定义了一个类A,S是类外的一个函数,通过A.S=S进行赋值
假设类 A 已经定义好了,现在可以通过 A.S = S 的方式将函数 S 赋值给类 A。这样做的效果是,将 S 函数作为类 A 的一个属性,并且可以通过该属性来调用函数 S。 下面是一个简单的例子:
类对象与静态,局部,全局变量的关系
自行编写代码,检验以下三种对象的构造与析构函数的执行顺序 (1)全局对象的构造函数在文件中的所有函数(包括main函数)执行之前调用。 (2) 局部自动对象 (3) 静态(static)局部对象
163 0
类对象与静态,局部,全局变量的关系