小编shw*_*ink的帖子

基指针中的派生对象如何调用基函数?

如何保存派生对象的基指针仍指向基函数?在这之后

a_ptr = &b_obj; 
a_ptr->disp();
Run Code Online (Sandbox Code Playgroud)

如果基本函数是虚拟的,我理解V-table的参与,它将地址保存到基函数.但是这里基本指针hodling派生对象可以管理调用基函数.

任何人都可以对幕后发生的事情有所了解吗?

class A
{
 public:
 //virtual void disp()
 void disp()
 { cout<< "From class A\n" << endl; }
};

class B : public A
{
public:
 void disp()
 { cout << "From Class B\n" <<endl; }
};

int main()
{
 A a_obj;
 A *a_ptr;

 B b_obj;

 a_ptr = &a_obj;
 a_ptr->disp();

 a_ptr = &b_obj;
 a_ptr->disp();
}
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism inheritance

1
推荐指数
1
解决办法
557
查看次数

如何使用整数工作添加十六进制值?

在下面的代码中,变量'b'保持值'133',这非常简单.变量'a'怎么样?为什么'131'?

我看到唯一的区别是'015'而不是'15'.

#include<stdio.h>
int main()
{
  int a,b,c;
  a=015 + 0x71 +5;
  printf("%d\n",a);  // prints '131'
  b=15 + 0x71 +5;
  printf("%d\n",b);  // prints '133'
}
Run Code Online (Sandbox Code Playgroud)

有人能让我知道这里发生了什么事吗?

c hex literals

-3
推荐指数
1
解决办法
85
查看次数

标签 统计

c ×1

c++ ×1

hex ×1

inheritance ×1

literals ×1

polymorphism ×1