anonymous
2011-04-10 17:49:56 UTC
{
protected:
double *m_dptrRes;
char *m_sptrResName;
public:
static int m_istResCounter;
void DisplayResistor();
void EnterResistance();
ResistorClass();
ResistorClass(char[], double, double);
~ResistorClass();
};
/////////////////////The two constructors create dynamic arrays
ResistorClass::ResistorClass()
{
string name;
cout << "Enter the resistor name\n";
getline(cin,name);
int length = (int)name.length();
m_sptrResName = new char[length +1];
strcpy_s(m_sptrResName, (length + 1), name.c_str());
m_dptrRes = new double[4];
m_dptrRes[0] = 1000.0;
m_dptrRes[1] = .1;
m_dptrRes[2] = m_dptrRes[0] + (m_dptrRes[0] * m_dptrRes[1]);
m_dptrRes[3] = m_dptrRes[0] - (m_dptrRes[0] * m_dptrRes[1]);
m_istResCounter++;
cout << "\nDefault Constructor Called\n";
}
ResistorClass::ResistorClass(char name[], double nominal, double tolerance)
{
int length = sizeof(name) / sizeof(char);
m_sptrResName = new char[length];
m_sptrResName = name;
m_dptrRes = new double[4];
m_dptrRes[0] = nominal;
m_dptrRes[1] = tolerance;
m_dptrRes[2] = m_dptrRes[0] + (m_dptrRes[0] * m_dptrRes[1]);
m_dptrRes[3] = m_dptrRes[0] - (m_dptrRes[0] * m_dptrRes[1]);
m_istResCounter++;
cout << "\nParameterized Constructor Called\n";
}
/////////////////////and I want to delete those with the constructor
ResistorClass::~ResistorClass()
{
cout << "\nDestructor Called" << endl;
delete []m_sptrResName;
delete []m_dptrRes;
m_istResCounter--;
cout << "Number of DateClass objects instantiated " << m_istResCounter << "\n\n";
}
////////////////The program compiles fine but when I run it it says "Debug Assertion Failed" and the program won't complete?