zoukankan      html  css  js  c++  java
  • C++ 之const Member Functions

    Extraction from C++ primer 5th Edition 7.1.2

    The purpose of the const that follows the parameter list of an ordinary member function is to modify the type of the implicit this pointer.

    By default, the type of this is a const pointer to the nonconst version of the class type. For example, by default, the type of this in a member function f of class T is T *const. Although this is implicit, it follows the normal initialization rules, which means that (by default) we cannot bind this to a const object. This fact, in turn, means that we cannot call an ordinary member function on a const object.

    If f were an ordinary function and if this were an ordinary pointer parameter, we would declare this as const T *const. After all, the body of f does not change the object to which this points, so our function would be more flexible if this were a pointer to const.

    However, this is implicit and does not appear in the parameter list. There is no place to indicate that this should be a pointer to const. The language resolves this problem by letting us put const after the parameter list of a member function. A const follow the parameter list indicates that this is a pointer to const. Member functions that use const in this way are const member functions.

    Objects that are const, and references or pointers to const objects, may call only const member functions.

  • 相关阅读:
    java 打包jar问题 含资源文件
    电脑 自动化脚本
    haproxy 安装配置
    rsa
    org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement
    java aop 日志打印 正则设置
    mysql 导入csv 转义
    linux 文件同步
    CSS3 流动边框
    httponlycookie
  • 原文地址:https://www.cnblogs.com/Patt/p/5791305.html
Copyright © 2011-2022 走看看