I'm writing a copy constructor, and I've never done one before so hopefully am aboot there.
Anyway I have in my class a buffer that is created during construction.
Classname::Classname(UINT timer, int nRecieveBufferSize)
{
m_iTimeoutInMiliseconds = timer;
//Buffer must not be less than 20k, but can be larger
if (nRecieveBufferSize < 20000)
nRecieveBufferSize = 20000;
nBufferSize = nRecieveBufferSize;
m_pbRecieveBuffer = new BYTE[nRecieveBufferSize];
//Zero the buffer.
ZeroMemory(m_pbRecieveBuffer, nRecieveBufferSize);
}
Question
Pablo2008jedi
I'm writing a copy constructor, and I've never done one before so hopefully am aboot there.
Anyway I have in my class a buffer that is created during construction.
Classname::Classname(UINT timer, int nRecieveBufferSize) { m_iTimeoutInMiliseconds = timer; //Buffer must not be less than 20k, but can be larger if (nRecieveBufferSize < 20000) nRecieveBufferSize = 20000; nBufferSize = nRecieveBufferSize; m_pbRecieveBuffer = new BYTE[nRecieveBufferSize]; //Zero the buffer. ZeroMemory(m_pbRecieveBuffer, nRecieveBufferSize); }For the copy constructor I have
Classname::Classname(Classname& pc) { m_pbRecieveBuffer = new BYTE[pc.GetBufferSize()]; ZeroMemory(m_pbRecieveBuffer, pc.GetBufferSize()); nBufferSize = pc.GetBufferSize(); m_pbRecieveBuffer = pc.m_pbRecieveBuffer; }also
Classname& Classname::operator=(Classname &pc) { if(this == &pc) { return *this; } else { m_pbRecieveBuffer = new BYTE[pc.GetBufferSize()]; ZeroMemory(m_pbRecieveBuffer, pc.GetBufferSize()); nBufferSize = pc.GetBufferSize(); m_pbRecieveBuffer = pc.m_pbRecieveBuffer; return *this; } }Right now...is this right? :p
Link to comment
Share on other sites
6 answers to this question
Recommended Posts