1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c-GNU GCC编译器错误“ main的多个定义”

c-GNU GCC编译器错误“ main的多个定义”

时间:2019-05-01 08:44:38

相关推荐

c-GNU GCC编译器错误“ main的多个定义”

我是ubuntu的新手,现在我需要使用C进行作业.

我正在使用代码块IDE编写C程序.

每当我在其中进行编译时,都会出现以下错误:

multiple definition of mainwarning: control reaches end of non-void function

这是我现在要编译的代码:

#include <iostream>#include <stdlib.h>using namespace std;/* The Node class */class Node{ public: int get() { return object; }; void set(int object) { this->object = object; }; Node * getNext() { return nextNode; }; void setNext(Node * nextNode) { this->nextNode = nextNode; }; private: int object; Node * nextNode;};/* The List class */class List{ public: List(); void add (int addObject); int get(); bool next(); friend void traverse(List list); friend List addNodes(); private: int size; Node * headNode; Node * currentNode; Node * lastCurrentNode;};/* Constructor */List::List(){ headNode = new Node(); headNode->setNext(NULL); currentNode = NULL; lastCurrentNode = NULL; size = 0;}/* add() class method */void List::add (int addObject){ Node * newNode = new Node(); newNode->set(addObject); if( currentNode != NULL ) { newNode->setNext(currentNode->getNext()); currentNode->setNext( newNode ); lastCurrentNode = currentNode; currentNode = newNode; } else { newNode->setNext(NULL); headNode->setNext(newNode); lastCurrentNode = headNode; currentNode = newNode; } size ;}/* get() class method */int List::get(){ if (currentNode != NULL) return currentNode->get();}/* next() class method */bool List::next(){ if (currentNode == NULL) return false; lastCurrentNode = currentNode; currentNode = currentNode->getNext(); if (currentNode == NULL || size == 0) return false; else return true;}/* Friend function to traverse linked list */void traverse(List list){ Node* savedCurrentNode = list.currentNode; list.currentNode = list.headNode; for(int i = 1; list.next(); i ) { cout << "\n Element " << i << " " << list.get(); } list.currentNode = savedCurrentNode;}/* Friend function to add Nodes into the list */List addNodes(){ List list; list.add(2); list.add(6); list.add(8); list.add(7); list.add(1); cout << "\n List size = " << list.size <<"\n"; return list;}int main(){ List list = addNodes(); traverse(list); return 0;}

谁能解释,我在哪里弄糟?

解决方法:

看来您的IDE不仅在编译一个文件,而且还在编译另一个包含主函数定义的文件.请检查正在编译多少文件.

另外,编译后会将所有警告视为错误(-Werror)或禁用此标志.

来源:/content-4-505901.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。