2011-04-21 2 views
0

У меня есть файл parser.h, Parser.cpp с функциями в нем конструктор являетсяКак объявить экземпляр моего класса?

Parser::Parser(string filename){....} 

Теперь я хочу использовать анализатор в моем functions.cpp файле, где я сделал обязательно

#include "Parser.h" 

В моей функции я хочу использовать парсер, как создать новый экземпляр, это то, что у меня есть, но я получаю синтаксические ошибки.

Parser::Parser parser("filename.txt"); 

извините ребята, я должен был уверен, что я скопировал мой код правильно, я не имею котировальные ошибки, равно как и не я забыл inlude parser.h

+0

Возможно, вы ошибаетесь, но не должно быть вашим именем файла «filename.txt» вместо «filename.txt», который будет считаться символом. Возможно, вы можете показать свой код отладки? – Genzume

+2

Для информации людей, по-видимому, было как минимум два исправления этого вопроса, которые исправляли опечатки при копировании кода, выполнялись достаточно быстро, чтобы не быть отмеченными как изменения вопроса (да, это работает ehre). Комментарии и ответы, которые не были найдены выше, относятся к более ранним версиям. –

+0

Кажется, что выбранный ответ был отредактирован в вопрос ... так ли это была проблема? Или у нас только что была хорошая опечатка? Смешение. –

ответ

2
#include "functions.h" 

Ваше имя файла заголовка Parser.h, не functions.h.

Так что это:

#include "Parser.h" 

Тогда это:

Parser parser("filename.txt"); //not Parser::Parser parser('filename.txt'); 

Используйте двойные кавычки, а не одиночные кавычки для строковых литералов, таких как "filename.txt"

+0

Это была опечатка – Technupe

+1

, которая была, не согласен с ответом в течение 8 минут, у меня есть еще несколько синтаксисов, которые я не могу получить, C++ для меня новичок – Technupe

+0

Какой еще синтаксис? – Nawaz

6

(Если вы #include d Parser.h) вам нужно только

Parser parser("filename.txt"); 

Parser::Parser отмечает определение метода конструктора класса Parser. Однако конструктор может (и нужно) не вызываться напрямую - вы вызываете его неявно, определяя экземпляр Parser, как указано выше.

Обратите внимание, что имя файла должно быть в двойных кавычках (одинарные кавычки обозначают отдельные символы, двойные кавычки - для текстовых строк).

1

Попробуйте

Parser::Parser parser("filename.txt"); 

Одиночные кавычки предназначены для одиночных символов, а не для строк.

Смежные вопросы