Как мне объявить экземпляр моего класса? - PullRequest
0 голосов
/ 22 апреля 2011

У меня есть файл Parser.h, Parser.cpp с функциями в нем. Конструктор:

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

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

#include "Parser.h"

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

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

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

Ответы [ 4 ]

6 голосов
/ 22 апреля 2011

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

Parser parser("filename.txt");

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

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

2 голосов
/ 22 апреля 2011
#include "functions.h"

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

Так сделайте это:

#include "Parser.h"

Тогда это:

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

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

1 голос
/ 22 апреля 2011

Попробуйте

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

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

0 голосов
/ 22 апреля 2011
Parser parser("filename.txt");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...