Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
193 views
in Technique[技术] by (71.8m points)

c++ - What is the difference between "struct" and lack of "struct" word before member of a struct

I have to create simple List implementation. They guy who wants that put struct before member next of class Node. Why is there a struct word, what would be the difference without it?

struct Node{
    int value;
    struct Node *next;//what is this struct for?
};


struct List{
    struct Node *first, *last;
};
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

In your example, there is no need to use the struct keyword before the next declaration. It is usually considered a throw-back from C, where it is required. In C++, this would suffice:

struct Node{
    int value;
    Node *next;
};

However, if you had a member called Node, then you would have to use struct or class:

struct Node{
    int Node;
    struct Node *next; // struct or class required here
};

You would also require struct of class for a declaration of a type that is not yet defined (a forward declaration). For example

struct Foo {
    class Bar* bar_; // Bar defined later
};

where I used class to show it makes no difference in this scenario.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...