在arraystorage類聲明,private: string *names;
實例化用C私人字符串數組++
ArrayStorage& ArrayStorage::operator=(const ArrayStorage& rhs)
{
// possible error
names = new string[numOfElements];
return *this;
}
// copy constructor
ArrayStorage::ArrayStorage(const ArrayStorage& rhs):
names(new string[numOfElements]),
numOfElements(rhs.numOfElements)
{
//names = new string[this->getNumOfElements()];
for (int i = 0; i < this->getNumOfElements(); i++)
names[i] = rhs.names[i];
}
ArrayStorage::~ArrayStorage(void)
{
delete [] names;
}
============================ ==== ArrayStorage.cpp ==============================
我的第一個問題,如果我聲明名稱爲私人的,整個事情不起作用。如果我把它公諸於衆,它就會起作用。
其次,如果我想將string *names
聲明爲私有,請問您能否提供建議,如何使其正常工作?
你能更具體? 「不起作用」是什麼意思?如果您可以將您的程序縮減爲能夠證明您的問題的最小的完整示例程序,它將非常有用。請參閱http://sscce.org/。 –
通過不工作的東西真的很奇怪發生。基本上,你可能稱它爲超時或無限循環。程序執行暫停,我在控制檯上看到一個閃爍的光標。 由於我的問題涉及到公共/私人問題,所以我放棄了這一點。 – HungryCoder
請注意'ArrayStorage arrayStorage4 = arrayStorage3;'應該調用構造函數,而不是'operator ='。 – chris