在C++中调用错误,不匹配调用
我正在使用eclipse,如果我在FixedPluginFig上按F3,那么它可以进入声明,但是当我执行构建 然后得到 错误:对“ZINK::FixedPluginFig ZINK::FixedPluginFig”的调用不匹配 这是FixPlugInFig头文件:在C++中调用错误,不匹配调用,c++,eclipse,function,C++,Eclipse,Function,我正在使用eclipse,如果我在FixedPluginFig上按F3,那么它可以进入声明,但是当我执行构建 然后得到 错误:对“ZINK::FixedPluginFig ZINK::FixedPluginFig”的调用不匹配 这是FixPlugInFig头文件: pluginConfig(FixedPluginConfig(".", "createClientFactory")); 以下是cpp文件: #ifndef ZINC_FIXED_PLUGIN_CONFIG_H_ #define
pluginConfig(FixedPluginConfig(".", "createClientFactory"));
以下是cpp文件:
#ifndef ZINC_FIXED_PLUGIN_CONFIG_H_
#define ZINC_FIXED_PLUGIN_CONFIG_H_
#include "AbstractPluginConfig.h"
NS_ZINC_OPEN
class ZINC_EXPORT FixedPluginConfig : public AbstractPluginConfig {
public:
FixedPluginConfig(const std::string& configSpec);
FixedPluginConfig(const std::string& libraryName, const std::string& createFunctionName);
FixedPluginConfig(const std::string& libraryName, const std::string& createFunctionName, const std::string& createParameters);
};
NS_ZINC_CLOSE
#endif /* ZINC_FIXED_PLUGIN_CONFIG_H_ */
您要求Eclipse查找类定义,它找到了它。 你的问题出在无花果上 我猜你已经写信了
#include "../include/FixedPluginConfig.h"
#include <boost/tokenizer.hpp>
#include <iostream>
#include <string>
NS_ZINC_OPEN
FixedPluginConfig::FixedPluginConfig(const std::string& libraryName, const std::string& createFunctionName) :
AbstractPluginConfig(libraryName, createFunctionName, "") {
}
FixedPluginConfig::FixedPluginConfig(const std::string& libraryName, const std::string& createFunctionName, const std::string& createParameters) :
AbstractPluginConfig(libraryName, createFunctionName, createParameters) {
}
/**
* Construct a FixedPluginConfig by parsing the config file specifier string
*
* FixedPluginConfig string spec is of the form:
*
* library_name function_name
* library_name function_name parameter [parameter]*
* library_name function_name(parameter parameter ...)
*/
FixedPluginConfig::FixedPluginConfig(const std::string &configSpec)
{
boost::char_separator<char> sep(", ()");
boost::tokenizer<boost::char_separator<char> > tok(configSpec, sep);
boost::tokenizer<boost::char_separator<char> >::iterator i = tok.begin();
libraryName = *i++;
createFunctionName = *i++;
createParameters.clear();
while (i != tok.end())
{
createParameters = createParameters.append(*i++);
if (i != tok.end())
createParameters = createParameters.append(" ");
}
}
NS_ZINC_CLOSE
这是行不通的,因为FixedPluginFig不能用FixedPluginFig参数调用。因此,调用错误消息不匹配
你的意思可能是
FixedPluginConfig pluginConfig;
pluginConfig(FixedPluginConfig(".", "createClientFactory"));
显示FixedPluginFig类…@Marglisse已经添加了代码,请参考上面的FixedPluginFig函数是否在任何地方定义?@billz是的,我正在使用eclipse,如果我在FixedPluginFig上按F3,它可以转到声明,但在building@user1853170你有FixPluginFig.cpp文件吗?你真是天才!谢谢!它起作用了!
FixedPluginConfig pluginConfig(".", "createClientFactory");