相关疑难解决方法(0)

如何重载operator ==()指向类的指针?

我有一个叫做的课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)

如果我省略那个星号,编译器会不高兴.

有没有一种方法,让比较操作比较*AStringconst char*

c++ pointers operator-overloading comparison-operators

7
推荐指数
2
解决办法
1万
查看次数

如何为2D数组的包装类重载数组索引运算符?

#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)

我认为直接不能超载[] [].

我想我必须间接地做,但如何实现它?

c++ operator-overloading

6
推荐指数
1
解决办法
5514
查看次数