我无法获得包含结构类型的向量的大小。 apples.h:
#ifndef APPLES_H
#define APPLES_H
#include <vector>
#include <iostream>
struct a{
int b;
bool c;
};
class apples
{
public:
apples();
~apples();
protected:
private:
static std::vector<a> d;
};
#endif // APPLES_H
apples.cpp:
#include "apples.h"
std::vector<a> d;
apples::apples()
{
std::cout<<d.size()<<std::endl;
}
apples::~apples()
{
//dtor
}
这段代码给了我&#34;未定义的参考&#39; apples:d&#39;&#34; main.cpp甚至没有调用包括苹果类,所以我没有看到发布它的点
答案 0 :(得分:1)
您的std::vector<a> d;
在d
前面缺少班级名称。这应该可以解决您的错误:
std::vector<a> apples::d;
否则编译器无法知道d
中apples
的定义。