如何声明我的班级实例?

时间:2011-04-21 20:37:05

标签: c++ function instance

我有一个Parser.h,Parser.cpp文件,里面有函数

是构造函数
Parser::Parser(string filename){....}

现在我想在我的functions.cpp文件中使用我的解析器,我确保

#include "Parser.h"

在我的函数中,我想使用解析器如何创建它的新实例,这就是我所拥有的,但我得到语法错误。

Parser::Parser parser("filename.txt");
抱歉,我应该确保我正确复制了我的代码,我没有引用错误,也没有忘记包含parser.h。

4 个答案:

答案 0 :(得分:6)

(如果您#include d Parser.h),您只需要

Parser parser("filename.txt");

Parser::Parser标记了类Parser的构造方法的定义。但是,构造函数可以(并且不需要)直接调用 - 通过像上面那样定义Parser的实例来隐式调用它。

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

答案 1 :(得分:2)

#include "functions.h"

您的标题文件名是Parser.h,而不是functions.h

这样做:

#include "Parser.h"

然后这个:

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

对于字符串文字,例如"filename.txt"

,请使用双引号,而不是单引号

答案 2 :(得分:1)

尝试

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

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

答案 3 :(得分:0)

Parser parser("filename.txt");