我有一个叫做的课AString.这是非常基本的:
class AString
{
public:
AString(const char *pSetString = NULL);
~AString();
bool operator==(const AString &pSetString);
...
protected:
char *pData;
int iDataSize;
}
Run Code Online (Sandbox Code Playgroud)
现在我想写这样的代码:
AString *myString = new AString("foo");
if (myString == "bar") {
/* and so on... */
}
Run Code Online (Sandbox Code Playgroud)
但是,现有的比较运算符仅支持
if (*myString == "bar")
Run Code Online (Sandbox Code Playgroud)
如果我省略那个星号,编译器会不高兴.
有没有一种方法,让比较操作比较*AString有const char*?
#define ROW 3
#define COL 4
class Matrix
{
private:
int mat[ROW][COL];
//.....
//.....
};
int main()
{
Matrix m;
int a = m[0][1]; // reading
m[0][2] = m[1][1]; // writing
}
Run Code Online (Sandbox Code Playgroud)
我认为直接不能超载[] [].
我想我必须间接地做,但如何实现它?