C++之对象存储空间_对象模型

C++编译器如何完成面向对象理论向计算机程序的转化

#include<stdio.h>
//////c++对象模型和结构体一样
         class Test
            {
            int i;
            int j;
            short k;
            short l;
            static int c;
                  public:
                   Test(int i,int j,int k)
                {
                  this->i=i; //this指针
                  this->j=j;         
                  this->k=k; ///this的作用
                  }
                      void print()
                     {
                       printf("Object Address:%08x\n",this);

printf("&c=%08x,c=%d\n",&c,c);
                         printf("&i=%08x,i=%d\n",&i,i);
                      printf("&j=%08x,j=%d\n",&j,j);
                         printf("&k=%08x,k=%d\n",&k,k);
                       }

};

     int Test::c;         ///这一句非常重要

int main()
              {

Test t1(1,2,3);
               printf("&t1=%08x\n",&t1);
                t1.print();

Test t2(4,5,6);
                printf("&t2=%08x\n",&t2);
                t2.print();

printf("sdfasdf.......");
                    getchar();
                   return 0;
                }

静态成员函数没有this指针

普通成员函数有this指针

时间: 2024-11-23 00:48:56

C++之对象存储空间_对象模型的相关文章

Oracle SQL语言DDL和对象管理_超越OCP精通Oracle视频教程培训27

Oracle SQL语言DDL和对象管理_超越OCP精通Oracle视频教程培训27 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第2/5套:Oracle SQL语言DDL和对象管理.主要学习Oracle数据库模式对象和表中可用的数据类型,表/临时表的创建与使用,索引/约束的创建与管理,视图/同义词/序列的创建和使用,触发器/存储过程/包的创建和使用. Oracle SQL语言DDL和对象管理,课程内容详细如下

7数据库逻辑对象管理_序列

序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l  自动提供唯一的数值 l  共享对象 l  主要用于提供主键值 l  将序列值装入内存可以提高访问效率 创建序列: 1.  要有创建序列的权限 create sequence 或 create any sequence 2.  创建序列的语法 CREATE SEQUENCE sequence  //创建序列名称 [INCREMENT BY n]  //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1 [START

面向对象程序设计-C++_14对象组合_课时15继承

对象组合,就是一个类的对象作为另外一个类的成员,涉及类的对象,对象是实体,玩实 继承,涉及类,类是概念,玩虚 public: 所有人都可以接触 private: 数据放private protected: 留给子类

数据库逻辑对象管理_簇

1.簇概念: 是一组表,如果应用程序中的SQL 语句经常联结两个或多个表,可以把这些表以簇方式进行创建以改善性能.簇中的表存储在相同的数据块中,并且各个表中的相同的列值只存储一个. 簇(Cluster)就是将一组有机联系的表在物理上存放在一起并且相同的关键列的值只存储一份,用于提高处理效率的一项技术 2 限制: l 簇中的每个表必须有一列与簇中指定的列的 大小和类型匹配: l 簇码中可用列的最大数目是16,即一个簇最多有16列作为簇码: l 列的最大长度为239字节: l LONG 和LONG

数据库逻辑对象管理_同义词

相当于alias(别名),比如把user1.table1在user2中建一个同义词table1 create synonym table1 for user1.table1; 这样当你在user2中查select * from table1时就相当于查select * from user1.table1; 优点自己总结吧. 例如:在oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对数据库进行操作的,

对象合并_拷贝

function merae(obj1, obj2) { for (var p in obj2) { try { if ( obj2[p].constructor==Object ) { obj1[p] = merae(obj1[p], obj2[p]); } else { obj1[p] = obj2[p]; } } catch(e) { //未设置目标对象中的属性:创建它并设置其值. obj1[p] = obj2[p]; } } var o1={ a:1, b:{bb:2}, c:{cc:3

C++语言学习(十三)——C++对象模型分析

C++语言学习(十三)--C++对象模型分析 一.C++对象模型分析 1.类对象模型的内存布局 class是一种特殊的struct,class与struct遵循相同的内存对齐原则,class中的成员函数与成员变量是分开存放的,每个对象拥有独立的成员变量,所有的对象共享类中的成员函数.运行时,类对象退化为结构体的形式:A.所有成员变量在内存中依次排布B.由于内存对齐的存在,成员变量间可能存在内存间隙C.可以通过内存地址访问成员变量D.访问权限关键字在运行时失效 #include <iostream

underscore 复习 对象函数 篇章

_.partial = function(func) { var boundArgs = slice.call(arguments, 1); var bound = function() { var position = 0, length = boundArgs.length; var args = Array(length); for (var i = 0; i < length; i++) { args[i] = boundArgs[i] === _ ? arguments[positio

常用对象之Application

对象就是我们Excel和程序的操作对象.比如单元格.工作簿.我们对于Excel的每个操作其实都是对相应对象的操作.比如选中单元格.保存工作表. 对象存放在对象模型里,2013以上版本似乎已经没有离线文档,只有在线的:https://msdn.microsoft.com/ZH-CN/library/ff194068.aspx 每个对象又有自己的属性和方法,最后构成完整的事件. 记住常用对象: Application对象: 代表的是Excel的整个程序,所以是最上层. ScreenUpdating属