小工具知识网

当前位置: 首页 > 行业知识 > C++奇迹之旅:探索类对象模型内存的存储猜想

行业知识

C++奇迹之旅:探索类对象模型内存的存储猜想

2026-11-07 21:32:52 来源:互联网转载

文章目录

  • 前言
  • 类的实例化
    • 类对象模型
    • 如何计算类对象的大小
      • 类对象的存储方式猜想
        • 猜想一:对象中包含类的各个成员
        • 猜想二:代码只保存一份,在对象中保存存放代码的地址
        • 猜想三:只保存成员变量,成员函数存放在公共的代码段
        • 类中什么都没有---空类
        • 类中仅有成员函数
        • 类中既有成员变量,又有成员函数
        • 总结

          前言

          上回我们学习了类的定义,初步了解了什么是类?类的定义,以及类的三个访问限定符:public,private,protected,本小节将讲解类的实例化,类对象模型的猜想存储,及三种简单类的计算。

          类的实例化

          在 C++ 中,类的实例化是指创建一个类的对象。当我们定义了一个类之后,就可以根据这个类创建出多个对象。这个过程就称为类的实例化。

          • 实例化一个类的语法是:
            ClassName objectName;

            首先,假设我们定义了一个 Person 类:

            1. 类的声明:
              • 我们定义了一个 Person 类,包含了两个数据成员 name 和 age,以及一个成员函数 introduce()。
              • 在类的声明阶段,并没有为 Person 类分配任何内存空间。
            // 类的声明#include using namespace std;class Person {public:    std::string name;    int age;    void introduce() ;};
            1. 类的定义:

              • 我们还需要定义 introduce() 函数的具体实现:
                void Person::introduce() {    std::cout       Person p1;     p1.name = "Asen";     p1.age = 18;     p1.introduce();     return 0;} Person._age = 100;   // 编译失败:error C2059: 语法错误:“.” return 0;}public:    std::string name;    int age;    void introduce();};//类的函数定义void Person::introduce(){    std::cout     cout public:void Init(char c1, char c2, int i){_c1 = c1;_c2 = c2;_i = i;}void Print(){cout cout public:void Init(char c1, char c2, int i){_c1 = c1;_c2 = c2;_i = i;}void Print(){cout char a = 'A';char b = 'B';calculate cule1;cule1._i;calculate cule2;cule2._i;cule1.Init(a, b, 1)cule2.Init(a, b, 2);cout };public:void f2() {}};public:void f1() {}private:int _a;};

上一篇:服务器怎么分辨国内国外?

下一篇:怎么浮动图层?