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 ?