C++ 嵌套结构的更多问题

C++ 嵌套结构的更多问题,c++,structure,C++,Structure,所有标有(!)的行都给出错误,为什么 主要功能 object * object :: read ( void ) { ... // some code to read and return (dynamically token space) pointer :: show ( head ) ; ( ! ) head :: obj :: show ( head ) ; ( ! ) head . obj . show ( head ) ; ( ! ) } 您似乎

所有标有(!)的行都给出错误,为什么

  • 主要功能

    object * object :: read ( void ) {
    
     ... // some code to read and return  (dynamically token space) pointer
    
     :: show ( head ) ;  ( ! ) 
    
     head :: obj :: show ( head ) ; ( ! )
    
     head . obj . show ( head ) ;   ( ! )
    
     }  
    

  • 您似乎来自非C++背景(C#?)。 在回答您的一些问题时: 从object::read()的作用域中处理全局变量的正确方法是简单地Show(Head)或::Show(Head)-我怀疑这里出现问题的原因是Head没有定义

    在主过程中,您需要使用->运算符专门取消引用指针,而不是: p、 对象分支(p)你想要p->obj->brach(p)


    这里所表达的代码和想法似乎还有很多其他错误,但是如果没有更多的源代码和您想要做什么的想法,就很难向您提供建议。

    需要更多的源代码。这里没有声明变量,后面可以猜测,哪个名称属于哪个类型。 但是:

    show(object*)
    函数是一个全局函数,因此调用不需要任何前缀

    对象
    结构具有任何
    obj
    类型成员变量。只有一个结构声明和定义了它自己和它的结构的一些方法。 因此,在main函数中,它不能调用
    obj::brach
    方法,除非它是一个
    static
    函数


    声明一个
    obj*头对象结构中的成员,创建它(
    p->head=newobject::obj()
    ),然后调用
    p->head->brach(…)

    你能告诉我们你有哪些错误吗?“head”是什么?@Chris Card,我没有存储错误,sorryhead是在global中定义的,但我忘了添加它indeed,您需要将show的定义放在read的定义之上,或者向前声明函数。
    object * object :: read ( void ) {
    
     ... // some code to read and return  (dynamically token space) pointer
    
     :: show ( head ) ;  ( ! ) 
    
     head :: obj :: show ( head ) ; ( ! )
    
     head . obj . show ( head ) ;   ( ! )
    
     }  
    
    object *p = new object ;
    ... // some code to read data
    object *tmp = NULL;
    tmp = p -> obj . brach ( p ) ; ( ! ) 
    
    **how** can I fix it ?