Я не новичок в коде, но я нахожусь в Visual Studios. В моей жизни я не могу понять, почему я получаю следующие синтаксические ошибки. Код отказывается разрешить мне объявить объект 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', либо macro include guard, а не оба. –
'Match m = new Match();' -> 'Match * mPtr = new Match();'. или просто 'Match m;' –