滴水逆向——C++_this指针

1、直接使用结构体做为参数\传递结构体指针

2、空结构体的大小为1

3、函数可以放在结构体里面,也可以放在结构体外面

struct sclass
{
    int a;
    int b;
    int c;
    int d;

    int Plus(sclass* sc)
    {
        return sc->a + sc->b;
    }
};

探测结构体的大小为:

4、函数放在里面如何使用的问题

struct sclass
{
    int a;
    int b;
    int c;
    int d;

    int Plus(sclass* sc)
    {
        return sc->a + sc->b;
    }
};

int main(int argc, char* argv[])
{
    sclass s;
    s.a = 10;
    s.b = 20;

    int x = s.Plus(&s);

    printf("%d %x\n", x, sizeof(s));
    return 0;
}

5、封装、类、成员函数

封装:

a.将函数定义到结构体内部,就是封装.

b.编译器会自动传递结构体的指针给函数.

类:

带有函数的结构体,称为类.

成员函数:

结构体里面的函数,称为成员函数.

6、this指针

this指针的特点:

a.你用或者不用,它就在那里

b.参数个数确定的时候,用ecx来传递

c.参数个数不确定的时候,最后一个传递(参见不定长参数)

7、显示使用this指针

this指针的特点:
a.this指针不能做++ --等运算,不能重新被赋值.
b.this指针不占用结构体的宽度.
 

发布了20 篇原创文章 · 获赞 2 · 访问量 634

猜你喜欢

转载自blog.csdn.net/z17805008775/article/details/105625567
今日推荐