• C++Primer笔记-----day04


    1.函数指针。
    函数指针指向某种特定类型,函数的类型由它的返回类型和形参类型决定,与函数名无关。
    比如:bool lengthCompare(const string &,const string &);
    该函数的类型为bool(const string &,const string &)
    声明一个指向该函数的指针,只需将函数名替换为指针即可:bool (*pf)(const string &,const string &)。(*pf)的括号不可以省略!
    使用函数指针:pf = funcName;或者pf = &funcName 均可。
    需要注意的是,函数指针不存在转换规则,pf的类型必须与函数完全匹配(无论是函数返回值还是形参类型)
    比如 string sumLength(const string&,const string&);
    bool cstringCompare(const char*,const char*);
    bool lengthCompare(const string &,const string &);
    pf = sumLength; // 错误,函数返回类型不匹配
    pf = cstringCompare; // 错误,形参类型不匹配
    pf = lengthCompare; // 完全正确
    我们还可以通过指向函数的函数指针直接调用该函数:bool b = pf("hello","goodbye");
    2.关于this指针。
    成员函数通过一个名为this的【额外的隐式参数】来访问调用它的那个对象。
    当我们调用一个成员函数时,用请求该函数的对象的地址来初始化this
    例如,类 A有一个成员函数foo();
    A a;
    a.foo(); // 编译器负责把a的地址传递给foo()的隐式形参this,相当于A::foo(&a)。
    所以我们可以在成员函数的内部使用this,通过this直接访问对象的成员。
    注意点:默认情况下,this的类型是指向类类型非常量版本的常量指针,在这个例子中为 A *const,所以this是一个常量指针,不允许改变this的地址,this总是指向“这个”对象。
    this是一个常量指针,根据初始化规则,所以不能把this与常量对象绑定在一起,
    所以,有时候需要修改this为const A *const,这时只需在成员函数的形参列表之后加一个const就可以完成。这类成员函数被称为常量成员函数。
    常量对象,以及常量对象的引用、指针,都只能调用常量成员函数。
    非常量对象可以调用常量成员函数,也可以调用非常量成员函数。

  • 相关阅读:
    2010上交:计算表达式
    添加子评论
    上传图片
    settings配置 文件操作
    django 操作前端数据
    静态文件配置
    render httprequest
    上传文件配置
    Django为什么要跳转到不同的页面来实现不同的功能
    定义日志器
  • 原文地址:https://www.cnblogs.com/ll-10/p/9599906.html
Copyright © 2020-2023  润新知