Ciao a tutti, sono nuovo del forum, spero qualcuno possa aiutarmi, sto cercando di imparare il c++ e sono bloccato da diverse ore su questo code, il problema è che non viene chiamato il distruttore della classe MyString...qualcuno sa aiutarmi?
#include <iostream>
using namespace std;
class MyString{
public:
MyString(const char *str);
~MyString();
const char getChar (int i) const;
void setChar(char c,int i);
void debug(void);
private :
char *mpStr;
int size;
};
MyString::MyString(const char *str){
while(*(str+size) != '\0')
size++;
mpStr = new char[size];
mpStr = strcpy(mpStr,str);
}
MyString::~MyString(){
cout << "dealloco";
}
const char MyString::getChar (int i) const{
}
void MyString::setChar(char c, int i){
}
void MyString::debug(){
for(int i = 0; i < size; i++)
cout << mpStr[i];
cout << endl;
}
int main(){
MyString test("abcd");
test.debug();
return 0;
}
Il distruttore non dovrebbe essere chiamato in automatico al termine del main? Dove sbaglio?