我不是新手代碼,但我是Visual Studio。對於我的生活,我無法弄清楚爲什麼我得到以下語法錯誤。該代碼拒絕讓我聲明一個對象Match m = new Match();
。C++對象未聲明標識符
Main.cpp的
#include <iostream>
#include <string>
#include <time.h>
#include "Match.h"
#include "stdafx.h"
using namespace std;
const int NUM_TRIALS = 100000;
int main()
{
Match m = new Match();
printf("Program begin\n");
for (int i = 0; i < 200; i++) {
m = Match();
printf("%s ... %s\n", m.to_str123().c_str(), m.printStr.c_str());
}
printf("Program end.\n");
return 0;
}
Match.h
#pragma once
#ifndef MATCH_H_
#define MATCH_H_
#include <string>
#include <iostream>
#include <time.h>
using namespace std;
#define HERO_PER_TEAM 3
#define NUM_HERO 10
class Match {
public:
Match();
~Match();
string to_str123();
string printStr();
private:
char teams[HERO_PER_TEAM * 2];
};
#endif
錯誤消息
Error C2065 'Match': undeclared identifier ConsoleApplication1
Error C2146 syntax error: missing ';' before identifier 'm' ConsoleApplication1
Error C2065 'm': undeclared identifier ConsoleApplication1
Error C2061 syntax error: identifier 'Match' ConsoleApplication1
Error C2065 'm': undeclared identifier ConsoleApplication1
Error C3861 'Match': identifier not found ConsoleApplication1
Error C2065 'm': undeclared identifier ConsoleApplication1
Error C2228 left of '.to_str123' must have class/struct/union ConsoleApplication1
Error C2228 left of '.c_str' must have class/struct/union ConsoleApplication1
Error C2228 left of '.printStr' must have class/struct/union ConsoleApplication1
它只能是C **或** C++,所以我刪除了C標籤。 –
使用'#pragma once'或宏包含守衛,而不是兩者。 –
'Match m = new Match();' - >'Match * mPtr = new Match();'。或者只是'匹配m;'使用名稱空間標準;' –