我想在派生类之间共享相同的向量,并以个体身份访问字符串。我得到一个未解决的外部错误。出了什么问题。有没有其他方法在没有静态方法的类之间共享向量。
#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;
}
如何在派生类中获取向量
答案 0 :(得分:1)
您还必须定义静态类变量。在类定义后添加以下行:
vector<string> base::v1;