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)
你没有初始化你的成员.你应该有:
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[]在析构函数的内存和执行拷贝构造函数和赋值操作符.