标签: operator-keyword

在c ++中重载+ =

如果我重载了operator +和operator =,我仍然需要重载operator + =这样的东西才能工作:

MyClass mc1, mc2;
mc1 += mc2;
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading operators operator-keyword

4
推荐指数
3
解决办法
569
查看次数

带矢量的新算子

这些问题相对简单.使用向量时,我应该new在推回新元素时使用运算符吗?我应该拨打哪种发布方法?这就是我的意思:

// Release method: 1.
void ReleaseMethodOne( vector< int * > &ThisVector )
{
    // Clear out the vector.
    ThisVector.clear( );
    return;
}

// Release method: 2.
void ReleaseMethodTwo( vector< int * > &ThisVector )
{
    // Clear out the vector.
    for( unsigned uIndex( 0 ); uIndex < ThisVector.size( ); uIndex++ )
    {
        delete ThisVector.at( uIndex );
    }
    return;
}

int main( )
{
    vector< int * > Vector;

    // Add a new element.
    Vector.push_back( new int( 2 …
Run Code Online (Sandbox Code Playgroud)

c++ vector new-operator operator-keyword

4
推荐指数
2
解决办法
3484
查看次数

C++重载运算符%为两个双精度数

是否有可能超过operator%两个双打?

const double operator%(const double& lhs, const double& rhs)
{
    return fmod(lhs, rhs);
}
Run Code Online (Sandbox Code Playgroud)

当然,这会产生错误,因为两个参数中的一个必须具有类类型.所以我考虑利用C++的隐式构造函数调用的可能性来解决这个问题.我是通过以下方式完成的:

class MyDouble {
public:
    MyDouble(double val) : val_(val) {}
    ~MyDouble() {}

    double val() const { return val_; }

private:
    double val_;
};


const double operator%(const MyDouble& lhs, const double& rhs)
{
    return fmod(lhs.val(), rhs);
}

const double operator%(const double& lhs, const MyDouble& rhs)
{
    return fmod(lhs, rhs.val());
}
Run Code Online (Sandbox Code Playgroud)

......和:

double a = 15.3;
double b = 6.7;

double res = a % b; …
Run Code Online (Sandbox Code Playgroud)

c++ double overloading operator-keyword

4
推荐指数
1
解决办法
3720
查看次数

在C++中重载类'operator []

我有一个类,我编写了它的[]运算符,我希望有时运算符将返回一个int,有时返回一个struct.

但是编译器不会让我重载运算符,为什么呢?

它说:"......不能超载"

码:

template <class T> struct part
{ };


template <class T> class LinkedList
{
         public:
                LinkedList() : size(0), head(0) {}
                T& operator[](const int &loc);
                part<T>& operator[](const int &loc);
};

template <class T> T& LinkedList<T>::operator[](const int &loc)
{
         ..a lot of thing which compiles perfectly
}

template <class T> part<T>& LinkedList<T>::operator[](const int &loc)
{
         ...the same thing but returns struct&.
}
Run Code Online (Sandbox Code Playgroud)

c++ overloading operator-keyword

4
推荐指数
1
解决办法
271
查看次数

链接列表| 重载+运算符| C++

我正在训练我的C++,我正在尝试编写一个能够使用链表来表示以下数字的库:

999999999*([i = 0]Σ[999999999] 1000000000 ^ i)

例如,如果我的号码是711381450277869054011,它将表示如下:

711*1000000000 ^ 2 + 381450277*1000000000 ^ 1 + 869054011*1000000000 ^ 0

所以,这是我的LL的结构及其功能:

typedef struct node* ll;
struct node
{
    unsigned int data;
    ll next;
};

bool insert(ll&, unsigned int);
// ...
void copy(ll&, ll);
void destroy(ll&);
Run Code Online (Sandbox Code Playgroud)

这是我的无符号非常长的整数类:

class uli
{
public:
    uli();
    ~uli();

    // <<, >>, =, operators...

    uli& operator +=(const uli&);
    uli& operator +=(char*);
    const uli operator +(const uli&);

private:
    ll head;
};

uli::uli()
{
    head …
Run Code Online (Sandbox Code Playgroud)

c++ overloading linked-list operator-keyword

4
推荐指数
1
解决办法
1029
查看次数

sed - 这个大括号的符号叫什么?

我刚发现这个:

sed '/label/{n;n;s/{}/{some comment}/;}'
Run Code Online (Sandbox Code Playgroud)

预期的效果是寻找label,继续2行(n;n;)然后替换(s)some comment.

这是我从未知道的惊人能力sed.

有人会非常友好地指定这个大括号表示法的名称,以及大括号内的运算符类的名称吗?

我想谷歌阅读更多:)

真诚的谢谢.

sed curly-braces operator-keyword

4
推荐指数
1
解决办法
1340
查看次数

重载==时无限递归

我有一个类,我想在c#中重载==运算符.我已经有一个正常的.Equals覆盖.当我尝试使用我的==运算符时,它在我的对象(Person)上给了我一个空引用异常.如果我尝试检查它是否为null,它将依次调用相同的运算符来检查它是否为null并创建一个无限循环.这似乎是一个巨大的缺陷,我无法找到正确的方法来做到这一点.

public static bool operator ==(Person person, object obj)
{
    return person == null ? person.Equals(obj) : false;
}

public static bool operator !=(Person person, object obj)
{
    return !(person == obj);
}
Run Code Online (Sandbox Code Playgroud)

c# recursion operator-overloading operator-keyword

4
推荐指数
1
解决办法
718
查看次数

如何检查/运算符在C中是否没有余数?

我要检查if/经营者有没有剩余或不:

int x = 0;    
if (x = 16 / 4), if there is no remainder: 
   then  x = x - 1;
if (x = 16 / 5), if remainder is not zero:
   then  x = x + 1;
Run Code Online (Sandbox Code Playgroud)

如何检查是否有剩余C?以及
如何实施它?

c operator-keyword

4
推荐指数
1
解决办法
7436
查看次数

如何让itemgetter从列表变量中获取输入?

如何将itemgetter与list变量一起使用而不是整数?例如:

from operator import itemgetter
z = ['foo', 'bar','qux','zoo']
id = [1,3]
Run Code Online (Sandbox Code Playgroud)

我这样做没问题:

In [5]: itemgetter(1,3)(z)
Out[5]: ('bar', 'zoo')
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时它给出了错误:

In [7]: itemgetter(id)(z)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-7-7ba47b19f282> in <module>()
----> 1 itemgetter(id)(z)

TypeError: list indices must be integers, not list
Run Code Online (Sandbox Code Playgroud)

如何让itemgetter正确地从列表变量中获取输入,即使用id

python operator-keyword

4
推荐指数
2
解决办法
2815
查看次数

三元语句中的C逗号

int m = 5, d = 12, y = 1975, val;
    // May 12, 1975
Run Code Online (Sandbox Code Playgroud)

有人可以在下面的代码行中解释逗号运算符的功能/目的:

val = (d+=m<3?y--:y-2,23*m/9+d+4+y/4-y/100+y/400)%7;
Run Code Online (Sandbox Code Playgroud)

上述行写由麦克·基思来计算给定日期(d =天,M =月,Y =年)一周中的一天.其中星期日= 0,星期一= 1,星期二= 2,星期三= 3,星期四= 4,星期五= 5,星期六= 6.我知道如果d + = m <3,则y--执行,否则y -2执行.我不明白的是y-2之后逗号的目的.

c ternary-operator comma operator-keyword

4
推荐指数
2
解决办法
1979
查看次数