2015-02-07 61 views
0

我無法獲得具有結構類型的向量的大小。 apples.h:C++如何獲得結構類型向量的大小

#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 
} 

這段代碼給了我 「未定義的引用 '蘋果:d'」 的main.cpp中甚而不調用包括蘋果類,所以我沒有看到發佈它的一個點

+0

下面是進一步的解釋:http://stackoverflow.com/questions/7531981/how-to-instantiate-a-static-vector-of-object – TriHard8 2015-02-07 13:30:50

回答

1

您的std::vector<a> d;缺少d前面的班級名稱。這應該可以解決您的錯誤:

std::vector<a> apples::d; 

否則編譯器無法知道這是在​​的d的定義。