小编Fad*_*lly的帖子

通过对象实例访问私有静态成员

我正在尝试更多地了解静态成员,并且我一直在尝试使用代码片段来查看哪些有效/合法,哪些无效.

我的理解是静态变量不在类/结构内,而是分开的.换句话说,y下面的代码中的变量应该被访问,A::y而不是this->y,因此我的假设是下面的代码不会编译.我对此感到惊讶(MingGW).

有人可以解释一下这种访问机制是如何工作和实现的.

// ClassA.h
class A{
  private:
    int x;
    static int y;
  public:
    void setX(int x){this->x = x;}
    void setY(int y){this->y = y;}
}

// main.cpp
#include "ClassA.h"

int main (int argc,char* argv[]){
  A my_A;
  my_A.setX(5);
  my_A.setY(10);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ this

3
推荐指数
1
解决办法
91
查看次数

使用 std::vector 初始化另一个 std::vector 的一部分

有没有办法在初始化列表中“扩展”一个向量变量来达到某种效果

std::vector<int> tmp1{1,1,2,3,5};
std::vector<int> tmp2{11,tmp1,99};
//tmp2 == {11,1,1,2,3,5,99}
Run Code Online (Sandbox Code Playgroud)

我知道它可以用 std::copy 或 insert 来完成。想知道是否有列表初始化方式来实现这一点。像[11,*tmp1,99]在 python 中的东西

c++

3
推荐指数
1
解决办法
118
查看次数

标签 统计

c++ ×2

this ×1