0
私は、コードのこの作品(私は一緒に私が書くしようとしているチェスプログラムに奇妙なエラーを分離しようとして投げた何か)を持つ:もう一度使うと、coutはバックスラッシュと数字を出力していますか?
#include <vector>
#include <iostream>
class piece{
public:
piece() : COLOUR('C'){}
const char COLOUR;
};
std::vector<piece*> makeEmptyLine(){
std::vector<piece*> emptyLine;
piece null;
emptyLine.push_back(&null);
return emptyLine;
}
int main(){
std::vector<piece*> emptyLine = makeEmptyLine();
std::cout << (*emptyLine[0]).COLOUR;
std::cout << (*emptyLine[0]).COLOUR;
std::cout << (*emptyLine[0]).COLOUR;
return 0;
}
を、出力がC\367\367
最初std::cout << (*emptyLine[0]).COLOUR;
です常に "C"(期待される結果)を出力します。しかし、それが再び使用されると、バックスラッシュと3桁の数字が出力されます。これは、プログラムで何回使用したかによって変化します。