C++C++C++

C++的一些容易忘记的知识点

2018-11-26  本文已影响82人  梅花怒
class Unnamed
{
private:
    double& a;
    double b;
public:
    Unnamed(double& A, double B) : a(A), b(B) {}
    double operator()(int x, int y) const { return x + y + a + b; }
};

即,lambda等价于一个类,类里面有(成员变量 | 构造函数 | operator() const)。其中捕获的值就是成员变量,用局部变量来初始化它们。注意mutable的意思是,operator() const 变成 operator(),没有const。

class A { public: static int x; };
int A::x = 2;

因为声明什么也不干,但是定义是分配内存,static的内存分配在全局区(静态区),和class不是一个区的,static和class的实例没有任何血缘关系。注意定义的时候不能再说static。

上一篇下一篇

猜你喜欢

热点阅读