相关疑难解决方法(0)

没有调用C++中重载的"=="运算符?

我有一个有string text私人成员的Task类.我访问变量槽const string getText() const;.

我想重载==运算符以检查对象的不同实例是否具有相同的文本.

bool operator==( const Task text2 ) const;在类标题上声明了一个public 并将其编码为:

bool Task::operator==( const Task text2 ) const {
     return strcmp( text.c_str(), text2.getText().c_str() ) == 0;
}
Run Code Online (Sandbox Code Playgroud)

但即使字符串相等,它总是返回false.

所以我在其中添加了一个cout调用bool operator==( const Task text2 ) const;来检查它是否被调用,但什么都没有.

似乎我的自定义==运算符永远不会被调用.

我的标题:

#ifndef TASK_H
#define TASK_H

#include <iostream>

using namespace std;

    class Task {
        public:
            enum Status { COMPLETED, PENDIENT };
            Task(string text);
            ~Task();
            // SETTERS
            void setText(string text);
            void …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

3
推荐指数
2
解决办法
3937
查看次数

标签 统计

c++ ×1

operator-overloading ×1