美文网首页程序员C++
C++ 类指针的问题

C++ 类指针的问题

作者: DayDayUpppppp | 来源:发表于2017-04-26 19:31 被阅读0次
这一部分要谈的是指针的类型。

Q1 : 一个指向class-a的指针,和一个指向class-b的指针 它们有什么区别?
比如:

Animal * a;
int *pi;
string * s;
相同之处:

从内存的角度来看,没有什么问题,它们都是在自己的内存空间里面放置一个地址。大小都是4。

不同之处:

不同指针之间的差异,是在其所寻址出来的object类型不同。也就是说,“指针类型”会教导编译器如何解释某个特定地址总的内存内容及其大小。也就是区别在于:

  1. 如何解释指针指向的这个内存空间里面的二进制数,比如unsigned int 和int 就是完全不一样的解释。
  2. 告诉编译器,指针可访问的偏移的长度是多少

我们在回到这个类指针的问题,如果有一个基类和一个派生类的指针,那么它们的区别是什么?
class Animal {
private:
    int loc;
    int id;
public:
     ...
};

class Bear : public Animal {
private:
    char name[8];
    int age;

public:
     ...
};

int main(){
    Bear b;
  //那么指针ap和bp有什么区别?
    Animal * pa = &b;
    Bear * pb = &b;
}

还是刚才的那个问题,ap 和bp有什么区别?
它们都指向的是派生类对象b的第一个字节的地方,其间的差别是,pb所涵盖的地址范围包含了整个bear 对象,但是pa所涵盖的地址只包含了bear对象中基类的部分。

相关文章

  • C++ 指向类的指针

    原文地址:C++ 指向类的指针 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成...

  • 1.2.09_C++ 指向类的指针

    C++ 类 & 对象 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算...

  • C++ 类指针的问题

    这一部分要谈的是指针的类型。 Q1 : 一个指向class-a的指针,和一个指向class-b的指针 它们有什么区...

  • block底层浅谈

    函数指针是指向函数的指针变量。 C++里面的结构体相当于OC里面的类 类就有变量和方法 C++里面跟类名一样的方法...

  • 1.2.08_C++ this 指针

    C++ 类 & 对象 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员...

  • C++智能指针

    引用计数技术及智能指针的简单实现 基础对象类 辅助类 智能指针类 使用测试 参考: C++ 引用计数技术及智能指针...

  • 10 多态 抽象

    /*多态本质:c++ 允许将派生类对象的地址赋予基类的指针所有派生类的本质都是is a 的基类基类的指针调用任何方...

  • 智能指针

    指针的危害 指针未初始化 野指针 内存泄漏 参考阅读C/C++指针使用常见的坑 智能指针分类 本质:将指针封装为类...

  • C++ 类的this指针

    (个人学习和理解,感觉很透彻了) this 指针是C到C++添加的新特性,空口无凭,来看一张图 ...

  • reference to non-static member f

    在看effective c++时遇到智能指针shared_ptr,在一个类中使用时出现问题,具体的代码见下: 结果...

网友评论

    本文标题:C++ 类指针的问题

    本文链接:https://www.haomeiwen.com/subject/lwdwzttx.html