Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未解析的外部符号向量c++;在类之间共享向量时_C++ - Fatal编程技术网

C++ 未解析的外部符号向量c++;在类之间共享向量时

C++ 未解析的外部符号向量c++;在类之间共享向量时,c++,C++,我想在派生类之间共享同一个向量,并作为个体访问字符串。我得到一个未解析外部的错误。出了什么问题。在没有静态方法的情况下,有没有其他方法可以在类之间共享向量 #include <iostream> #include <vector> #include <string> using namespace std; class base { public: static vector<string> v1; void set(string val

我想在派生类之间共享同一个向量,并作为个体访问字符串。我得到一个未解析外部的错误。出了什么问题。在没有静态方法的情况下,有没有其他方法可以在类之间共享向量

#include <iostream>
#include <vector>
#include <string>
using namespace std;
class base
{
public:
  static vector<string> v1;

  void set(string val);

  vector<string> getval();
};

void base::set(string val)
{
   v1.push_back(val);
}

vector<string> base::getval()
{
  return v1;
}


class derived :public base
{
public:
  void vec();
};

void derived::vec()
{
  string b = "sfd";
  derived d;
  d.set(b);
}

class derive2:public base
{
public:
  void vec2();
};

void derive2::vec2()
{
  derive2 f;
  vector<string> a(100);
  a = f.getval();
}

int main()
{
  derived a;
  a.vec();
  derive2 b;
  b.vec2();
  a.vec();
  b.vec2();
  return 0;
}
#包括
#包括
#包括
使用名称空间std;
阶级基础
{
公众:
静态向量v1;
无效集(字符串val);
向量getval();
};
void base::set(字符串val)
{
v1.推回(val);
}
向量基::getval()
{
返回v1;
}
派生类:公共基
{
公众:
void-vec();
};
void派生::vec()
{
字符串b=“sfd”;
导出d;
d、 组(b);
}
类派生2:公共基
{
公众:
void-vec2();
};
void derive2::vec2()
{
衍生2 f;
载体a(100);
a=f.getval();
}
int main()
{
导出了一个;
a、 vec();
衍生2 b;
b、 vec2();
a、 vec();
b、 vec2();
返回0;
}

如何获取派生类中的向量

您还必须定义静态类变量。在类定义后添加此行:

 vector<string> base::v1;
向量基:v1;