加载中…
个人资料
玄机逸士
玄机逸士
  • 博客等级:
  • 博客积分:0
  • 博客访问:30,147
  • 关注人气:10
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
博文
(2009-05-25 12:25)
标签:

杂谈

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

校园幽默

it

分类: 杂谈

周末了, 转发一个笑话,祝大家周末愉快:

 

 

[ 场景一]
老师:老实说,你吸烟吗?
男生 a :不吸。
老师:不吸?嗯,吃根薯条吧。
男生 a 很自然地伸出两根手指夹着接过来……
老师:不吸?!叫家长来……

 

 

[ 场景二 ]
老师 : 吸烟吗?
男生 b: 不吸。
老师:不吸?嗯,吃根薯条吧。
b 由于听到a 的情况,所以很小心的用手掌接过了薯条。
老师:不蘸点番茄酱吗?
b 一不小心蘸多了,于是马上用手指弹了弹……
老师:弹烟灰的姿势很熟练嘛。叫家长来……

 

 

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

在网上看到很多朋友对Shallow Copy,Deep Copy,Bitwise Copy和Memberwise Copy这4者之间的关系的理解多有混淆,Stanley Lippman的“Inside the C++ Object Model”的讲解也比较晦涩难懂,玄机逸士在此来一个简单的、明确的说明:)

 

Java中的Clone也有浅克隆和深克隆之分,分别对应C++中的浅拷贝和深拷贝。

 

Shallow Copy = Bitwise CopyDeep Copy = Memberwise Copy.

Long story short, a shallow copy only copies the binary, in memory, print of a class. A deep copy “dives into” the members, and copy their logical data. Usually, by default, it is a Shallow/Bitwise copy.

 

下面

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2009-04-24 01:25)
标签:

cpp

内存对齐

it

分类: C/C++

请参考:http://blog.sina.com.cn/s/blog_5f5fff010100cu9w.html

 

一个类的对象到底有多大?其大小由什么因素影响?

我们假定这个类没有继承任何其他类,且没有虚函数。先看下面例子:

#include <iostream>

using namespace std;

 

class Concrete

{

public:

      &nbs

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2009-04-24 01:13)
标签:

cpp

虚基类

虚函数

it

分类: C/C++

前篇:http://blog.sina.com.cn/s/blog_5f5fff010100cwpu.html

 

下面讨论虚基类和虚函数同时存在的时候,对对象内存布局的影响。

假定各个类之间的关系如下图:

  

Base中声明了一个虚函数vfBase()和一个整形成员变量;

Derived1 override

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2009-04-24 01:03)
标签:

cpp

虚基类

it

分类: C/C++

前篇:http://blog.sina.com.cn/s/blog_5f5fff010100cwpo.html

 

对象内存布局 (14)差不多,只是改动了两个继承关系。几个类的继承关系如下图,这种继承方式不是很有实际意义,在此纯粹是探究类的memory layout。

        

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2009-04-24 00:46)
标签:

cpp

虚基类

it

分类: C/C++

前篇:http://blog.sina.com.cn/s/blog_5f5fff010100cwpj.html

 

继续探讨虚基类对对象内存布局的影响。几个类的继承关系如下图,这是虚基类最为常见的用法之一:

 

 

代码如下:

#include <iostream>

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2009-04-24 00:25)
标签:

cpp

虚基类

it

分类: C/C++

前篇:http://blog.sina.com.cn/s/blog_5f5fff010100cwh2.html

 

下面来看看虚基类对对象内存布局的影响。虚基类的主要作用就是在所有的派生类中,保留且仅保留一份虚基类的suboject。

 

a. 一个虚基类的情况

#include <iostream>

using namespace std;

 

class Base

{

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2009-04-23 16:10)
标签:

cpp

继承

upcasting

it

分类: C/C++

前篇:http://blog.sina.com.cn/s/blog_5f5fff010100cwfd.html

 

注意:关于内存对齐(memory alignment),请看关于内存对齐问题,后面将会用到。

 

下面我们进行在普通继承(即非虚继承)时,派生类的指针转换到基类指针的情形研究。假定各

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2009-04-23 16:00)
标签:

cpp

虚函数

it

分类: C/C++

前篇:http://blog.sina.com.cn/s/blog_5f5fff010100cw96.html

 

在C++中,一个类实例化得到的结果就是一个对象。一个类包含成员变量和成员函数,其中成员变量又分为nonstatic成员变量和static成员变量;成员函数又可以分为nonstatic成员函数、static成员函数以及virtual成员函数。一个对象包含可能存在的vfptr以及它声明的或基类继承而来的nonstatic成员变量,static成员变量、static成员函数、nonstatic成员函数以及virtual函数均存在于对象之外。

 

VC2005中有一个非常重要的编译选项:

对于查看类的对象的内存布局,微软内部在VC2005中(要先进入Microsoft Visual Studio -> Visual Stu

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有