Closed. This question is not reproducible or was caused by typos。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
4年前关闭。
Improve this question
注意:我已经在SO上进行了彻底搜索,而针对其他人发布的具有类似问题的解决方案在这里对我不起作用。
我在C++中编写自己的自定义“类字符串”类,并且在编译时会遇到以下错误:
至于第一个和第二个错误,在
至于第三个错误,我似乎无法解决-我没有在重新定义类!
这是
这是
供引用,以下是编译输出的屏幕截图:
任何帮助是极大的赞赏。
pystring.cpp
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
4年前关闭。
Improve this question
注意:我已经在SO上进行了彻底搜索,而针对其他人发布的具有类似问题的解决方案在这里对我不起作用。
我在C++中编写自己的自定义“类字符串”类,并且在编译时会遇到以下错误:
至于第一个和第二个错误,在
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;
};
};
供引用,以下是编译输出的屏幕截图:
任何帮助是极大的赞赏。
最佳答案
您要在标题和cpp文件中定义类PyString,而且,函数定义最后不需要;
。
而且...您的函数原型(prototype)需要放在 header 的类声明中:
pystring.h
class PyString {
public: //ALWAYS indicate what is public/private/protected in your class
PyString (char* inString);
~PyString (); // Don't put void when there's no parameter
private: // All attributes are private
char* string;
};
pystring.cpp
#include "PyString.h"
PyString::PyString(char* inString) {
string = inString; // Avoid using new unless you're forced to
}
PyString::~PyString() {
}
关于c++ - C++错误: redefinition of class [closed],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39972087/
10-10 23:34