C++d对象与this指针

本文介绍了C++中对象的存储方式,包括成员变量与成员函数的分离存储,以及静态与非静态成员的区别。重点讲解了this指针的概念,它用于在非静态成员函数中标识调用函数的对象。this指针可以解决形参与成员变量同名时的区分问题,并在链式编程中发挥作用。此外,文章还讨论了空指针调用成员函数的注意事项,以及const修饰的成员函数和常对象的使用规则。
摘要由CSDN通过智能技术生成

一、成员变量与成员函数分开存储。
在C++中,类内的成员变量和成员函数是分开储存的,只有非静态成员变量才属于类的对象上。

#include <iostream>
using namespace std;

class Person{
public:
    int m_A;  //非静态成员变量         属于对象上

    static int m_B;  //静态成员变量   不属于对象上

    void func()   //非静态成员函数    不属于对象上
    {

    }

    static void func2()  //静态成员函数    不属于对象上
    {

    }
};

int main()
{
    //Person p;  //空对象占用内存空间为:1
    //C++编译器都会给空对象分配1个字节的空间,是为了区分空对象占内存的位置。
    //空对象在内存空间有一个独一无二的地址。
    //cout << "sizeof(p):" << sizeof(p) << endl;  //1

    Person p;
    cout << "sizeof(p):" << sizeof(p) << endl; //4

    return 0;
}

二、this指针的概念。
通过第一点,我们知道在C++中成员变量和成员函数分开存储。
静态成员变量、静态成员函数都是在编译阶段已经分配好内存的了。
非静态成员函数是在运行代码之后,才会在代码去申请

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值