【问题标题】:C++ how to create special type of operator [duplicate]C ++如何创建特殊类型的运算符[重复]
【发布时间】:2022-01-11 17:50:55
【问题描述】:

我创建了一个类 Marks 和 + 运算符。

#include <iostream>

using namespace std;

class Marks {
    int intmark;
    int extmark;
public:
    Marks() {
        intmark = 0;
        extmark = 0;
    }
    Marks(int im, int em) {
        intmark = im;
        extmark = em;
    }
    void display() {
        cout << intmark << endl << extmark << endl;
    }

    Marks operator+(Marks m) {
        Marks temp;
        temp.intmark = intmark + m.intmark;
        temp.extmark = extmark + m.extmark;
        return temp;
    }
};

int main()
{
    Marks m1(10, 20), m2(30, 40);
    Marks m3;
    m3= m1 + m2;
    m3.display();
    return 0;
}

我想将运算符 + 更改为不同的东西。

我的意思是: 运算符将在以下情况下运行:

m3= m1 + m2;

但是我可以把它改成这样的吗

m3 = m1 特殊运算符 m2 我没有 + 号。 我可以在某些句子或数字运算符上更改它吗? m3 = m1 11--11 m2 m3 = m1 -MYoperator- m2

【问题讨论】:

  • 这能回答你的问题吗? Can you make custom operators in C++?
  • 您不能更改运算符的优先规则。
  • 在 C++ 中,我们只能重载现有的运算符,而不能发明新的运算符符号。例如,我们不能定义operator** 来提供求幂。
  • @jjramsey 嗨。感谢您的回答。是的,对我帮助很大。也感谢其他人的回答。

标签: c++ c++17


【解决方案1】:

在 C++ 中,

我们只能重载现有的运算符,不能发明新的运算符符号。

例如,我们不能定义operator** 来提供求幂。

同样,我们不能拥有m3 = m1 11--11 m2;m3 = m1 -MYoperator- m2;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2011-10-07
    • 2012-10-17
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    相关资源
    最近更新 更多