类定义问题
我的应用程序有两个源文件
main.cpp和String.h
代码分别如下
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <String.h>
using namespace std;
bool String::operator==(const String &rhs) //报错的地方,请问是为什么?
{
if(_size!=rhs._size)
return false;
return strcmp(_string,rhs._string)?false:true;
}
int main(int argc, char *argv[])
{
system("PAUSE");
return 0;
}
String.h文件是String类的定义
#include <iostream>
class String;
istream & operator>>(istream &,String &);
ostream & operator<<(ostream &,const String &);
class String {
public:
String();
String(const char *);
String(const String &);
~String();
String & operator=(const String &);
String & operator=(const char *);
bool operator==(const String &);
bool operator==(const char *);
char & operator[](int);
int size()
{
return _size;
}
char * c_str()
{
return _string;
}
private:
int _size;
char * _string;
}
问题点数:20、回复次数:4Top
1 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2005-03-02 12:39:52 得分 8
#include <String.h>
->
#include "String.h"
class String;
istream & operator>>(istream &,String &);
ostream & operator<<(ostream &,const String &);
->
直接定義就是
class String
{
// ...
friend istream & operator>>(istream &,String &);
friend ostream & operator<<(ostream &,const String &);
};
Top
2 楼tankbattle(坦克大战)回复于 2005-03-02 13:58:21 得分 4
注意#include "..."和#include <...>的区别。后者只能用来包含标准路径下的头文件,自己创建的头文件只能用前一种方法来包含。Top
3 楼jialuo(jialuo)回复于 2005-03-02 14:44:45 得分 0
我改了还是报错啊Top
4 楼succer(IT浪子)回复于 2005-03-02 16:53:15 得分 8
类定义完后,后面应该加分号,class string {};Top




