ошибка: ожидаемый спецификатор типа перед 'Number'

0

Я попытался выяснить вышеприведенную ошибку, но нигде не пришел. Каждый раз, когда я компилятор, я получаю ошибку:

/home/duncan/Desktop/OOPS/dac80/json/parser.cpp: In function 'Value* parseString(std::stringstream&): /home/duncan/Desktop/OOPS/dac80/json/parser.cpp:149:19: error: expected type-specifier before 'String Value* val = new String(name);

Я проверял, что я включаю правильный файл заголовка в исходные файлы, чтобы компилятор распознал файл. Ниже приведен код, касающийся ошибки

Parser.cpp:

#include "object_model.h"

Value* parseString(std::stringstream& in)
{	
	std::string name("123");
	
	Value* val = new String(name);
	
	return val;
}

object_model.hpp:

#ifndef OBJECTMODEL_H
#define OBJECTMODEL_H

#include <string>
#include <sstream>
#include <map>
#include <vector>

enum ValueType { Object = 0, Array = 1, String = 2, Number = 3, True = 4, False = 5, Null = 6};


class Value
{
	public:
		Value() {}
		virtual ValueType getType() = 0;
};


class String : public Value
{
	public:
		String(std::string content);
		~String();
		
		std::string content;
		
		virtual ValueType getType();
};

#endif

object_model.cpp:

#include "object_model.h"

String::String(std::string content)
{
	this->content = content;
}

String::~String()
{

}

ValueType String::getType()
{
	return (ValueType)2;
}

Еще одна вещь, которую я заметил, если я меняю String на Text, тогда код полностью компилируется. Не знаете, почему, но будет ли имя String когда-либо противоречить классу std :: string?

  • 0
    Нет, это конфликтует с вашим другим идентификатором String .
Теги:

1 ответ

2
Лучший ответ

Что означает Крис, когда он говорит: "Нет, он конфликтует с другим идентификатором строки" - это то, что ваш "класс String" сталкивается с идентификатором "String" из "enum ValueType {Object = 0, Array = 1, String = 2, Number = 3, True = 4, False = 5, Null = 6}; ", так что компилятор видит для

Value* val = new String(name);

является

Value* val = new 2(name);
  • 0
    Спасибо! Это была проблема!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню