У меня возникают проблемы с этими тремя частями кодов в терминах выделения памяти. У меня еще нет.Проблемы с распределением памяти, строка и т. Д.
Не могли бы вы указать мне, что я делаю неправильно и как я должен исправлять его?
1:
class MyString {
public:
MyString() : str(0) {}
MyString(char *a)
{ str = new char[strlen(a)+1]; strcpy(str,a); }
~MyString() { delete[] str; }
private:
char *str;
friend ostream& operator<<(ostream &os, const MyString &str);
};
ostream& operator<<(ostream &os, const MyString &s)
{
return os << s.str << endl;
}
int main()
{
MyString str("Mitt namn");
MyString *strp = &str;
// alot of code
delete strp;
// alot of code
}
2: как определено выше
int main()
{
MyString *str1 = new MyString("Mitt namn");
MyString str2 = *str1;
delete str1;
// alot of code
cout << str2 << endl;
}
3: Тем не менее, как определено выше
class MyASCII : public MyString {
public:
MyASCII(char *a) : MyString(a), ascii(0)
{
if (a==0) return;
ascii = new int[strlen(a)];
for (int i=0; i<strlen(a); i++)
ascii[i] = int(a[i]);
}
~MyASCII() { delete[] ascii; }
private:
int *ascii;
};
Ну, в чем проблема? –