-1 c++ overloading operator-keyword
我在我的程序中遇到了重载运算符"+"," - ","/"和"*"的问题.基本上我有一个对象,它是动态分配的double值数组.我有整个程序,但我无法克服那些重载.
我的构造函数看起来像这样:
table::table(int size) {
this->size = size;
tab = new double[size];
count++;
}
Run Code Online (Sandbox Code Playgroud)
我写过类似的东西:
table & table::operator-(const table &tab3 )
{
table * tab_oper2 = new table(size);
for(int i=0; i< tab3.size; i++)
{
(*this).tab[i] -= tab3.tab[i];
}
return *this;
}
Run Code Online (Sandbox Code Playgroud)
这通常是有效的,但通常不是这样做的好方法.我的导师告诉我尝试将(*this)切换到*tab_oper2,将其作为参考返回,但它不起作用.拜托,有人能告诉我怎么做得好吗?
C++是一种面向价值的语言; 返回table(而不是a table&).在局部变量中构造返回值,并将其返回.并且不要忘记三个规则:给定您显示的小代码,您将需要一个复制构造函数,一个赋值运算符和一个析构函数.(当然,如果您使用std::vector,而不是new[]所有这些都将为您照顾.)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |