m_MAX和ask()被run()使用,否則不應該公開。如何做到這一點?如何隱藏C++靜態成員變量和函數?
#include <vector>
class Q {
public:
static int const m_MAX=17;
int ask(){return 4;}
};
class UI {
private:
std::vector<Q*> m_list;
public:
void add(Q* a_q){m_list.push_back(a_q);}
int run(){return Q::m_MAX==m_list[0]->ask();}
};
int main()
{
UI ui;
ui.add(new Q);
ui.add(new Q);
int status = ui.run();
}
將Q改爲:class Q { private: static int const m_MAX = 17; int ask(){return 4;} friend class UI; }; 生成沒有錯誤。你如何注意前向申報? – 2009-07-15 21:10:41