monolake 的GeekBand C++开发学习笔记(四)

前记:进入面向对象编程(下)的课程,在(上)概念建立完成后,进入了实用知识填充阶段:本周主要讲类中转换函数,显式调用explicit(禁隐式调用),智能指针,仿函数,类模版,函数模板,模板参数的模版类,模板特化,模板偏特化,名称空间namespace。具体内容课程有讲,我不具体罗列。以下我记录的一些小tips供大家分享。

this指针

基类的this指针,派生类的this指针。
在基类中写调用一个函数包含:cout<<sizeof(this),在派生类中写一个函数包含:cout<<sizeof(this).用派生类对象同时调用这两个函数时,发现得出的结果不一致,基类的sizeof(this)为对象基类部分大小,派生类sizeof(this)为整个对象的大小。
如例:

#include<iostream>
using namespace std;
class Base
{
    int no;
    double weight;
    char key;
public:
    void print() { cout << sizeof(*this)<<endl; };
};

class Dired : public Base
{
    int size;
    char type;
public:
    void print() { cout << sizeof(*this) << endl; };
};
int main()
{
    Base A;
    Dired B;
    A.print();
    B.print();
    cin.get();
}

结果:

this

可以看出不一样。看来this指针也是类中所属的属性,基类的this和派生类this分别指的是自己独有的内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,620评论 1 51
  • 第一章 计算机与C++编程简介 C++程序6个阶段编程 ->预处理->编译->连接->装入->执行1.程序在编译器...
    rogertan30阅读 4,490评论 0 1
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 7,873评论 0 10
  • 重新系统学习下C++;但是还是少了好多知识点;socket;unix;stl;boost等; C++ 教程 | 菜...
    kakukeme阅读 20,376评论 0 50
  • 今天的拖延症轻了很多,昨晚上计划的小目标都差不多完成了,晚上的时候还有些清闲的时间。写论文、找工作,要搬走这两座大...
    苏苏不酥阅读 192评论 0 0

友情链接更多精彩内容