为类构造函数中的指针分配内存

ado*_*tyd 0 c++ constructor memory-management class operator-overloading

我正在研究一个程序但是在涉及到类时无法理解使用指针.我知道我必须为指针使用分配内存,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;
...
}
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 5

你没有初始化你的成员.你应该有:

Hangman()
{
   remaining=new char[26];
}
Run Code Online (Sandbox Code Playgroud)

你的版本:

 Hangman()
 {
    char* remaining=new char[26];
 }
Run Code Online (Sandbox Code Playgroud)

初始化一个名为的局部变量remaining,其范围是构造函数.

此外,你应该delete[]在析构函数的内存和执行拷贝构造函数和赋值操作符.