C++ 如何声明类的实例?

C++ 如何声明类的实例?,c++,function,instance,C++,Function,Instance,我有一个Parser.h,Parser.cpp文件,其中包含函数 构造函数是 Parser::Parser(string filename){....} 现在,我想在functions.cpp文件中使用解析器,在这里我确保 #include "Parser.h" 在我的函数中,我想使用解析器如何创建它的新实例,这是我所拥有的,但我得到了语法erorrs Parser::Parser parser("filename.txt"); 对不起,伙计们,我应该确保我复制的代码是正确的,我没有引用错

我有一个Parser.h,Parser.cpp文件,其中包含函数 构造函数是

Parser::Parser(string filename){....}
现在,我想在functions.cpp文件中使用解析器,在这里我确保

#include "Parser.h"
在我的函数中,我想使用解析器如何创建它的新实例,这是我所拥有的,但我得到了语法erorrs

Parser::Parser parser("filename.txt");
对不起,伙计们,我应该确保我复制的代码是正确的,我没有引用错误,也没有忘记插入parser.h

(如果你
#包含
d
parser.h
),你只需要

Parser parser("filename.txt");
Parser::Parser
标记类
Parser
的构造函数方法的定义。但是,构造函数可以(也不需要)直接调用——您可以通过定义
解析器的实例来隐式调用它,如上所述

请注意,文件名应使用双引号(单引号表示单字符,双引号表示文本字符串)

头文件名是
Parser.h
,而不是
functions.h

这样做:

#include "Parser.h"
那么这个,

Parser parser("filename.txt"); //not Parser::Parser parser('filename.txt');
请对字符串文本使用双引号,而不是单引号,例如
“filename.txt”

试试看

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

单引号用于单个字符而不是字符串。

我可能错了,但您的文件名不应该是“filename.txt”而不是“filename.txt”,因为它会被视为一个字符。也许你可以展示你的调试代码?供大家参考,显然至少有两次对这个问题的编辑纠正了代码复制中的打字错误,速度足够快,不会被视为对问题的编辑(是的,这很有效)。上面未找到的引用错误的注释和答案与早期版本相关。似乎所选答案已编辑到问题中。。。这就是问题所在吗?还是我们刚刚进行了一次很好的排版会议?是Confusing.that,我会在8分钟内接受你的答案,我有一些其他语法我不能正确,C++是新的me@user570098:当你问自己为什么会有问题时,打字错误是很糟糕的。当它是一个语法错误,打字错误是非常非常糟糕的。在这样的情况下总是剪切粘贴。很明显,你在原始版本中有三个明显的错误,一些人指出了那些是打字错误。
Parser parser("filename.txt");
Parser parser("filename.txt");