勤能补拙,Expter

成都游戏Coder,记录游戏开发过程的笔记和心得!

最新学习笔记

1.关于虚继承
        在c++ primer中这样描述,虚继承是一种机制,类通过虚继承指出它希望共享其虚基类的状态。在虚继承下,对给定虚基类,无论该类在派生层次中作为虚基类出现多少次,只继承一个共享的基类子对象。共享的基类子对象称为虚基类(virtual base class)
   
 1#include <iostream>
 2using namespace std;
 3class B {
 4public:
 5    void print() {
 6        std::cout << "B" << std::endl;
 7    }

 8}
;
 9
10class D1: public virtual B {
11}
;
12
13class D2: public virtual B {
14public:
15    void print() {
16        std::cout << "D2" << std::endl;
17    }

18}
;
19
20class DD: public D1, public D2 {
21}
;
22
23int main () {
24    DD d;
25    d.print();    // ok: call D2::print
26    
27    return 0;
28}

29


2.关于拷贝构造函数的调用
class B {
}
;
B  foo()
{
        B  b;
        
/// some fun
        return b;
}
 
/*
如果 B c = foo()进行调用是一个关于值的返回,先调用拷贝构造函数,将创建一个b的引用,然后掉哦那个operator=操作。
下面将是foo()解释代码。
*/

void  foo( B& __result ) 
{
   B xx; 
   
// compiler generated invocation 
   
// of default constructor 
   xx.B::X(); 
   
//  process xx 
   
// compiler generated invocation 
   
// of copy constructor 
   __result.B::X( xx ); 
   
return
}
 
具体的原理看Inside C
++ Object Model

  3. C99关于取模运算的定义是:
      a%b=a-(a/b)*b;

     对于负数的取摸 :比如 -1 % 4 = 3;
     C89里面负数取整是“向0靠拢”,所以-1/4=0,所以-1%4=-1。
     C99里面修改为更加通用准确的定义法:“不大于其值的最大整数”,因此-1/4=-1,所以-1%4=3。

posted on 2009-07-13 23:16 expter 阅读(371) 评论(0)  编辑 收藏 引用 所属分类: 其他学习笔记算法与数据结构


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理