多项式++:如何将p(x)增加1
Polynomial++: How to increment p(x) by 1
我有一个Polynomial
类,我正在尝试定义operator++
,包括前增量和后增量,以及尝试定义前减量和后减量,即operator--
。以下是我的代码片段:
class Polynomial
{
public:
Polynomial();
Polynomial(vector<int>coeffs);
/*
.
.
.
*/
Polynomial operator++();
Polynomial& operator++ (int unused);
Polynomial operator--();
Polynomial& operator-- (int unused);
/*
.
.
.
*/
private:
vector<int> coefficient;
};
Polynomial Polynomial::operator++()
{
coefficient[0]++;
return *this;
}
Polynomial& Polynomial::operator++ (int unused)
{
Polynomial copy(*this);
coefficient[0]++;
return copy;
}
Polynomial Polynomial::operator--()
{
coefficient[0]--;
return *this;
}
Polynomial& Polynomial::operator-- (int unused)
{
Polynomial copy(*this);
coefficient[0]--;
return copy;
}
我在尝试做这样的事情时遇到了一个错误:
Polynomial p(
。。。某个矢量。。。);
cout << p++;
您正在从您的postfix操作符返回对临时性的引用:
Polynomial& Polynomial::operator++ (int unused)
{
Polynomial copy(*this);
coefficient[0]++;
return copy; // returning reference to local variable
}
这是未定义的行为。你的返回类型是post和pre-increative,方法不对。你需要这样的东西:
Polynomial& operator++();
Polynomial operator++ (int);
Polynomial& operator--();
Polynomial operator-- (int);
相关文章:
- 数组索引的值没有增加
- 为什么我的代码在输出中增加了93天
- 有效地使用std::unordered_map来插入或增加键的值
- c++模板来表示多项式
- C++ 动态数组每次添加时将大小增加 1 - 错误
- 为什么要增加导致崩溃的指针
- 增加传递地址的值
- 如何增加以前由新运算符分配的 C++ std::list 数组的大小?
- 为什么"i"在循环的每次迭代中都没有增加?(C++)
- std::thread 增加 DLL 引用计数,从而防止卸载 DLL
- 如何在C++中为增加但记住删除先前对象的对象分配唯一标识符
- 将一对插入地图并增加计数?
- 整数类型应该显式转换(例如"int"到"无符号")还是只会增加混乱?
- 我的 c++ 应用程序中的运行时间从 0 增加到 60 太快了(例如一毫秒或一微秒)
- 使用链表数据结构打印多项式
- 为什么当通过 TCP 发送的消息速率增加时,请求-响应消息对的延迟会降低?
- 琐碎并发代码的吞吐量不会随着线程数量的增加而增加
- C++:功能在输出前自动使用50减/增加输入数
- 追加位以增加字符的大小
- 多项式++:如何将p(x)增加1