我知道有很多关于此的问题,但我已经检查了我的程序是否存在常见错误,而且我似乎无法找到任何错误。
我在文件strlist.cpp的第一行拷贝构造函数中遇到这些错误:
ISO C ++禁止声明'Strlist'没有类型[-fpermissive] 没有在'StrList'类中声明的'int StrList :: Strlist(const StrList&)'成员函数
以下是该部分:
/* copy constructor */
40 StrList::Strlist(const StrList& rhs)
41 {
42 intitList(&list);
43 Struct Node *current = (rhs.list).head;
44 while(current != NULL){
45 AddFront(*(const MyString *)current->data);
46 current = current->next;
47 }
48 reverse();
49 }
以下是我的头文件中的复制构造函数:
5 #ifndef __STRLIST_H__
6 #define __STRLIST_H__
11
12 #include "mystring.h"
13 #include "stdio.h"
14 #include "stdlib.h"
20
21 extern "C" {
22 #include "mylist.h"
23 }
24
25 class StrList {
26
27 public:
(......................)
40
41 /*copy constructor */
42 StrList(const StrList& rhs);
(..................)
105 };
106
107 #endif
我在strlist.cpp中包含了strlist.h,所以我无法弄清楚这有什么问题。
谢谢!
答案 0 :(得分:2)
ISO C ++禁止声明'Strlist',没有类型
StrList::Strlist(const StrList& rhs)
// ^
在阅读错误消息时你应该格外小心,编译器正试图帮助你!
答案 1 :(得分:2)
只需将StrList::Strlist
更改为StrList::StrList
,因为第一种方式不会引用构造函数(List部分的错误情况)