C++面向对象高级编程

C++关键字的思考 (Boolan)

2017-02-22  本文已影响21人  Haley_2013

C++关键字的思考 (Boolan)

本章内容:
1 关键字的相关理解
1.1 const关键字
1.2 static关键字
1.3 非局部变量的初始化顺序
1.4 非局部变量的销毁顺序


1 关键字的相关理解

1.1 const关键字

1.1.1 const变量和参数

(1) const指针

注意:另一种易于记忆的,用于指出复杂变量声明的规则:从右向左读,考虑示例int* const pIP;从右向左读这条语句,就可以知道pIP是一个指向intconst指针。另一方面,int const* pIP读作pIP是一个指向const int的指针。

(2) const引用

(2) const方法

mutable数据成员

1.1.2 constexpr关键字

将函数声明为constexpr对函数的行为施加了一些限制,因为编译器必须在编译期间对constexpr函数求值,函数也不允许有任何副作用。下面是几个限制:

通过定义constexpr构造函数,可以创建用户自定义类型的常量表达式变量。constexpr构造函数应该满足以下要求:

例如,下面的Rect类定义了一个满足上述要求的constexpr构造函数,此外还定义了一个constexpr getArea()方法,执行一些计算。

    class Rect
    {
    public:
        constexpr Rect(int width, int height) : mWidth(width), mHeight(height) {}
        constexpr int getArea() const 
        { 
            return mWidth * mHeight; 
        }
    private:
        int mWidth;
        int mHeight;
    };

1.2 static关键字

1.1.1 静态数据成员和方法

(1) 静态数据成员

(2) 静态方法

1.1.2 静态链接(staitc Linkage)

extern关键字

1.1.3 函数中的静态变量

1.3 非局部变量的初始化顺序

1.4 非局部变量的销毁顺序

上一篇 下一篇

猜你喜欢

热点阅读