Я работаю над программой, но не могу понять работу с указателями, когда участвуют классы. Я знаю, что мне нужно выделить память для указателя, используя new
, и это нормально, если не использовать классы. Однако я не могу найти простой учебник, чтобы объяснить, как это сделать. Может кто-нибудь, пожалуйста, помогите мне? Это соответствующие фрагменты того, что я сделал до сих пор, но она выводит случайные символы:Выделить память для указателя в конструкторе класса
"Hangman.c"
{
class Hangman
{
public:
...
char* remainingLetters();
Hangman()
{
char* remaining=new char[26];
}
~Hangman();
private:
char* remaining;
}
"Hangman.cpp"
{
...
char* Hangman::remainingLetters()
{
...does task to find remaining letters;
return remaining;
}
ostream& operator<< (ostream &out, Hangman &game)
{
out << "Letters remaining are: " << game.remaining <<endl
return out;
}
}
"main.cpp"
{
...
cout << game;
...
}
На самом деле вы не должны использовать указатели или 'new' вообще в C++, ** особенно если вы новичок. Они являются нишевыми экспертными темами для разработчиков библиотек. –
Идя по теме не используя указатели, почему бы просто не объявить переменную-член как массив? То есть 'char остается [26];' Тогда вам не нужно беспокоиться о таких вещах, как утечки памяти, например, если вы забудете освободить память в деструкторе. –
@JoachimPileborg Мне нужно возвращать массив каждый раз, когда вызывается функция, которая не может быть выполнена на C++, если я правильно помню. Вот почему я пытаюсь использовать указатель. Можно ли получить массив в этом случае? – adohertyd