我正在尝试更多地了解静态成员,并且我一直在尝试使用代码片段来查看哪些有效/合法,哪些无效.
我的理解是静态变量不在类/结构内,而是分开的.换句话说,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) 有没有办法在初始化列表中“扩展”一个向量变量来达到某种效果
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 中的东西