zoukankan      html  css  js  c++  java
  • C++ const使用情况总结

    C++ const使用情况总结:

    1、const 用户指针的两种情况
    1) 指针*符号在const右:
    char const *szValue = "V1R2B120";
    const char *szValue = "V1R2B120";
    可以修改指针szValue,不能修改指针内容*szValue;
    2) 指针*符号在const左:
    char* const szValue = szInput;
    不能修改指针szValue,可以修改指针内容*szValue;

    2、const限定函数的传递值参数
    void FunStr(const char* szInput);
    在函数Fun中,不能修改szInput这个指针的内容;
    void FunInt(const int iInput);
    在函数FunInt这个函数中,iInput是传入的参数,获得传入值后,就不能更改;
    这个限定,只能限定函数内部,不能限定函数使用者。

    3、const限定函数的返回值
    const MyClass FunClass();
    函数FunClass返回的对象,只能调用类MyClass中的const成员变量和函数;
    const限定返回值常用于双操作符的函数,如
    const operator *(const MyClass* Value1, const MyClass* Value2)
    {
        return new MyClass(Value1->x*Value2->x);
    }
    防止:
    MyClass a, b, c;
    (a*b) = c;/*预防这样的等式*/
    也用于如下字符串指针的方式:
    const char* getString();/*预防外部对string内容的修改*/


    4、const限定类得成员函数
    class ClassName
    {
        ....
    public:
        int getValue() const;
    }
    获得的能力:可以操作常理对象;
    失去的能力:不能修改内的数据成员,不能在函数中调用其他不是const的函数。

    5, tips: 类构造函数是不能定位为const
    Class Myclass{
    public:
        Myclass() const;//error
    。。。。。。
    }
     
  • 相关阅读:
    正则表达式分组替换注意
    L2 正则化的直观理解
    git版本控制
    callbacks
    validation_data作用
    pandas 对某一列添加过滤
    py-redis 设置过期时间
    什么情况下要做预算会计
    超过一年的一个营业周期是什么意思?
    无形资产为什么属于非流动资产
  • 原文地址:https://www.cnblogs.com/runner42/p/2848958.html
Copyright © 2011-2022 走看看