代码之家  ›  专栏  ›  技术社区  ›  stib

静态类属性,C++中的多个构造函数

  •  -2
  • stib  · 技术社区  · 7 年前

    说我有

    class A {
    public:
      A();
      A(int);
      static const int foo;
      int bar;
    }
    

    如果我想在构造函数中初始化静态成员,如何构造类?这是:

    A::A()
    {
      foo = 123; 
      bar = 42;
    }
    A::A(int b)
    {
      foo = 123;
      bar = b;
    }
    

    似乎有效,但如果静态成员 foo 是在类的所有实例之间共享的,如何初始化它两次?好像我做错了什么。

    3 回复  |  直到 7 年前
        1
  •  1
  •   Robert Andrzejuk    7 年前

    class A {
    public:
      A();
      A(int);
      static const int foo;
      int bar;
    }
    

    const int A::foo = 123;
    

    class A {
    public:
      A();
      A(int);
      inline static const int foo = 123;
      int bar;
    }
    
        2
  •  3
  •   goutnet    7 年前

    const

    int A::foo = 42;
    

        3
  •  2
  •   Walter    7 年前

    const

    const static int foo = 42 .cpp const int A::foo = 42

    推荐文章