gpt4 book ai didi

c++ - 嵌套结构的更多问题

转载 作者:行者123 更新时间:2023-11-28 08:23:47 24 4
gpt4 key购买 nike

object *head = NULL, *tail = NULL;  // EDIT
struct object {
vector <int> data;
object * read ( void ) ;
struct obj {
obj *next;
object * brach ( object * ) ;
};
};

object * object :: read ( void ) {
... // some code to read and return (dynamically token space) pointer
}
object * object :: obj :: brach ( object * p ) {
... // some code to make link list and pointer to middle
}

void show ( object * p ) {
... // to show data, from head to tail
}

很多关于嵌套结构的问题,但我认为他们都有相似的答案

  • 如果我想把 show 函数放在 read 函数中,如何在其中使用全局 show 函数?

    一些努力;

    object * object :: read ( void ) {

    ... // some code to read and return (dynamically token space) pointer

    :: show ( head ) ; ( ! )

    head :: obj :: show ( head ) ; ( ! )

    head . obj . show ( head ) ; ( ! )

    }

    所有标有 ( ! ) 的行都会出错,WHY

  • 在主函数中

    object *p = new object ;
    ... // some code to read data
    object *tmp = NULL;
    tmp = p -> obj . brach ( p ) ; ( ! )

    **how** can I fix it ?

最佳答案

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

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

object 结构有任何obj 类型的成员变量。只有一个结构被声明并定义了自己及其结构的一些方法。所以在 main 函数中它不能调用 obj::brach 方法,除非它是一个 static 函数。

在对象结构中声明一个obj* head;成员,创建它(p->head = new object::obj()),然后调用p->head->brach(..);

关于c++ - 嵌套结构的更多问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4815452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com