【发布时间】:2016-10-11 07:12:19
【问题描述】:
注意:我已经对 SO 进行了彻底的搜索,并且为其他有类似问题的人发布的解决方案在这里对我不起作用。
我正在用 C++ 编写自己的自定义“类字符串”类,并且在编译时遇到以下错误:
./PyString.h:8:11: 错误:'PyString' 的行外声明确实 不匹配“PyString”中的任何声明 PyString::PyString (char*); ^
./PyString.h:9:11: 错误:定义隐式声明的析构函数 PyString::~PyString (void);
pystring.cpp:4:7: 错误:重新定义“PyString”类 PyString {
至于第一个和第二个错误,将析构函数移动到cpp文件中的类定义本身不起作用。
至于第三个错误,我似乎无法修复它——我没有重新定义类!
这里是pystring.h:
#ifndef PYSTRING_INCLUDED
#define PYSTRING_INCLUDED
class PyString {
char* string;
};
PyString::PyString (char*);
PyString::~PyString (void);
#endif
这里是pystring.cpp:
#include "PyString.h"
#define NULL 0
class PyString {
char* string = NULL;
public:
PyString(char inString) {
string = new char[inString];
};
~PyString(void) {
delete string;
};
};
非常感谢任何帮助。
【问题讨论】:
-
我认为你应该得到a good beginners book 并重新开始,因为在你显示的源中正确的并不多。
-
查找在标题中定义的类的任何示例,其成员在
.cpp文件中定义。
标签: c++ class compiler-errors g++