-5
 pluginConfig(FixedPluginConfig(".", "createClientFactory"));

私はEclipseを使用していますが、FixedPluginConfigでF3キーを押すと、宣言に進むことができますが、ビルドを実行すると

その後、

エラー:「(zinc :: FixedPluginConfig)(zinc :: FixedPluginConfig)」の呼び出しに一致しません

これはFixPluginConfigヘッダーファイルです:

#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_ */

これがcppファイルです:

#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
4

1 に答える 1

0

クラス定義を見つけるように Eclipse に依頼したところ、Eclipse はそれを見つけました。
あなたの問題は にありますpluginConfig

私はあなたが書いたと思います

FixedPluginConfig pluginConfig;
pluginConfig(FixedPluginConfig(".", "createClientFactory"));

a は引数FixedPluginConfigで呼び出すことができるものではないため、これは機能しません。FixedPluginConfigしたがって、「no match for call」というエラー メッセージが表示されます。

あなたがおそらく意味することは

FixedPluginConfig pluginConfig(".", "createClientFactory");
于 2013-01-11T12:09:53.737 に答える