Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链表c++;节点构造函数_C++_Constructor_Linked List_Nodes - Fatal编程技术网

C++ 链表c++;节点构造函数

C++ 链表c++;节点构造函数,c++,constructor,linked-list,nodes,C++,Constructor,Linked List,Nodes,我得到了这段代码来操作链表,但在我开始之前,有一些事情我不明白。首先,我认为默认构造函数是在没有编写构造函数的情况下由程序本身生成的。在一个编写的构造函数旁边有一条评论说“默认构造函数生成一个空列表”。我也不明白为什么这个旁边有一组方括号。。。{head=NULL;} 但最重要的是我不懂这行代码。。。 friend ostream&运营商 首先,我认为默认构造函数是在没有编写构造函数的情况下由程序本身生成的 默认构造函数是任何可以无参数调用的构造函数。但是编译器确实生成默认构造函数,并且默认初始

我得到了这段代码来操作链表,但在我开始之前,有一些事情我不明白。首先,我认为默认构造函数是在没有编写构造函数的情况下由程序本身生成的。在一个编写的构造函数旁边有一条评论说“默认构造函数生成一个空列表”。我也不明白为什么这个旁边有一组方括号。。。{head=NULL;}

但最重要的是我不懂这行代码。。。 friend ostream&运营商 首先,我认为默认构造函数是在没有编写构造函数的情况下由程序本身生成的

默认构造函数是任何可以无参数调用的构造函数。但是编译器确实生成默认构造函数,并且默认初始化(uff!)所有成员。但是,
head
是一个没有默认初始化的指针。如果没有
head=NULL
,其值将是不确定的。不过,更好的办法是:

LinkedList() : head(NULL) {}
但最重要的是我不懂这行代码。。。friend ostream&运营商 首先,我认为默认构造函数是在没有编写构造函数的情况下由程序本身生成的

默认构造函数是可以不带参数调用的构造函数。因此,在本例中,我们有一个用户定义的默认构造函数。这是完全正确的

但最重要的是我不懂这行代码


friend ostream&operator…@OP请一次问一个问题!否则StackOverflow站点的预期问答格式将被破坏。因为他说他不理解
I,虽然他不理解friend方法的内联定义的语法,但我也添加了这个。哦,我明白了,谢谢你的解释。那么ostream&operator是函数名吗。?这就是我感到困惑的地方。我知道friend关键字允许不属于类的函数访问其私有和受保护的数据成员。我也知道提取操作符是什么,但是看这个对我来说没有意义。为什么ostream后面有一个符号?这个函数使用的参数也让我感到困惑,因为我不知道它们是什么。如果问题太多,我很抱歉。函数名为
运算符谢谢,我现在明白了。我唯一不明白的是,为什么不在括号中将head的值设置为null,比如so LinkedList(head=null)。这是因为如果在括号中写入head=NULL,它将成为一个参数吗?所以你必须把它写在方括号里?另外,我知道这并不重要,但我是女性而不是男性。非常感谢。
LinkedList() : head(NULL) {}
class LinkedList
{
friend ostream& operator<<( ostream& os, const LinkedList &ll );
};

ostream& operator<<( ostream& os, const LinkedList &ll )
{
    …
}
LinkedList list;
cout << list << endl; // Dumps the list to standard output
LinkedList list;
std::cout << list << std::endl;