64,654
社区成员
发帖
与我相关
我的任务
分享
#ifndef CHARREF
#define CHARREF
#include "myString.h"
class char_ref
{
friend class myString;
int i;
myString* s;
char_ref(myString* ss, int ii);
public:
void operator=(char c);
operator char();
};
#endif
#ifndef MYSTRING
#define MYSTRING
#include "char_ref.h"
class myString
{
friend class char_ref;
char *r;
public:
myString(char*);
char_ref operator[](int i);
};
#endif
#include "char_ref.h"
#include "myString.h"
#include <iostream>
using namespace std;
int main()
{
char c1[] = {"hello world!"};
char c2[] = {"you and me!"};
myString s1(c1);
myString s2(c2);
//TODO
s1[0] =(s2[0].operator char());//此句可以跳入void operator=(char c);
s1[0] = s2[0]; //此句不会跳入void operator=(char c); 为什么s2[0]不会自动转换?
cout << s2[2] << endl;
return 0;
}