请问一下:
我在第一个头文件中声明变量m_elements
class CGraph
{
public:
vector<CGcodeElement *> m_elements;
};
在第二个头文件中声明
class CCompensation
{
private:
CGraph m_graph;
};
我想在第二.cpp文件中用变量m_elements的值。
请问如何做?我用
m_graph.m_elements;
for(int i=0;i<m_elements.getSize();i++)
使用m_elements,提示未定义标识符。

解决方案 »

  1.   

    在class CCompensation中定义一个class CGraph的对象,然后调用
    CGraph m_Graph ; m_Graph.m_elements.getSize();
      

  2.   


      m_Graph.m_elements.getSize();
      

  3.   


    我试过了,但m_Graph.m_elements.调用不了CGraph中的函数getSize();
      

  4.   


    我试过了,但m_Graph.m_elements.调用不了CGraph中的函数getSize();
      

  5.   

    for(int i=0;i<m_Graph.m_elements.getSize();i++)
      

  6.   


    是size()函数还是getSize()???
      

  7.   


    for(int i=0;i<m_graph.m_elements.size();i++)
      

  8.   


    getSize()是自定义的函数,m_Graph.m_elements.可以调用size(),但不能调用自定义的函数。我需要调用一些自定义的函数。
      

  9.   

    都被LZ给忽悠了!
    getSize()是CArray 的成员函数.......
      

  10.   

    我还需要调用其他自定义的函数,比如m_elements.getAt(i)
      

  11.   

    呵呵,我定义了
    int CGraph::getSize(){
    return m_elements.size();
    }
    我还定义了一些,比如m_elements.getAt(i),这样的调用不了
      

  12.   


    那不对呀,getSize()是CGraph的成员函数,你m_elements.getSize()是哪门子的道理?
    你直接m_graph.getSize()看看是什么情况
      

  13.   

    m_elements.getSize()这个是我想表达的意思。我要调用CGraph中的m_elements
      

  14.   

    for(int i=0;i<m_elements.getSize();i++)
    这句在头文件里永远调不过你要在对应的cpp文件里写这句.
      

  15.   

    1. 不用第二个类,看直接用第1个类的变量有无问题.
    2. 如果1没有问题, 则应该用指针 CGraph * p;  // because it is vector