【发布时间】:2015-02-27 02:44:25
【问题描述】:
我可能刚刚做了一些愚蠢的事情,但我无法在任何地方找到此错误消息的答案。
我遇到的问题是我不断收到错误 “从构造函数返回一个值”
我这里的代码是一个拷贝构造函数:
RealBox::RealBox(const RealBox& rhs)
{
if(this != &rhs)
{
m_boxsize = rhs.m_boxsize;
delete[] m_reals;
m_reals = new float [m_boxsize];
for(int i=0;i<m_boxsize;i++)
{
m_reals[i]=rhs.m_reals[i];
}
}
return *this;
}
来自一个班级:
class RealBox
{
private:
float* m_reals; // Array of Real Numbers
int m_boxsize; // number of Real Numbers
public:
RealBox(int s, float a);
~RealBox();
const RealBox& operator=(const RealBox& rhs);
// Purpose: Copy Constructor
// Parameters: rhs - RealBox to be copied
// Postconditions: *this == rhs
RealBox(const RealBox& rhs);
void set( int i, float x);
friend std::ostream& operator<< (std::ostream& out,
const RealBox& box);
};
我确定我刚刚做了一些愚蠢的事情,但我无法弄清楚,任何帮助将不胜感激。
【问题讨论】:
-
从字面上看,不允许从构造函数返回值。
-
错误信息的哪一部分你不明白?
-
也许您正在考虑另一种语言,例如 C?
-
是的,我刚刚弄清楚发生了什么(我也不得不删除,删除)对不起,我是个菜鸟
标签: c++ compiler-errors copy-constructor deep-copy