栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

关于this指针的个人理解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于this指针的个人理解

就是在C里面结构体仿造类的用法(个人理解)

比如在C++里面,用类来实现的一个函数给对象赋值,可以这么做

Class A{

Publice :

        int a;

        void seta(b){

                a=b;

        }

}

int main(){

        A c;

        c.seta(123);

        return 0;

}

在C语言里面,没有class关键字,和类相似的就是结构体,在C语言里面,可以这样子实现

struck A{

        int a;

}

void seta(struck A *this,int b){

        this->a=b;

}

int main(){

        struck A c;

        seta(&c,123);

        return 0;

}

this 指针的作用就是指向成员函数所作用的对象,所以非静态成员函数中可以直接使用 this 来代表指向该函数作用的对象的指针。

class A{

Public:

        int a;

        void seta(int b){

                this->a =b;

        }

}

A geta(){

        return *this;    

}        

int main(){

        A x;

        A y;

        x.seta(123);

        y=x.geta();

        return 0;

}

实际上每个成员函数的第一个参数默认都有个指向对象的 this 指针,如果该指向的对象是空,相当于成员函数的第一个参数是NULL,那么只要成员函数没有使用到成员变量,也是可以正常执行。

PS:静态成员函数是不能使用 this 指针,因为静态成员函数相当于是共享的变量,不属于某个对象的变量。

下面是实际开发情况:

这个LPMappoint是个map

 其实返回的是这个map测点

 不知道有没有讲错,小蔡同学有点菜。但是就是想记录一下,加深印象。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938216.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号