C ++: проблема с использованием строки в качестве аргумента функции - PullRequest
0 голосов
/ 26 сентября 2010

Хорошо, у меня проблемы со следующим фрагментом кода (в заголовочном файле):

#ifndef XML_H_INCLUDED
#define XML_H_INCLUDED
#include "libxml/parser.h"
#include "libxml/xmlwriter.h"
#include <string>


class XmlFile{
public:
    XmlFile(string filename){
        file = xmlParseFile(filename);


    }
    xmlDocPtr file; //Pointer to xml file


};



#endif // XML_H_INCLUDED

Файл включен в основной исходный файл (но не доступен, поэтому его содержимоене важно).

Я получаю следующую ошибку (в кодовых блоках):

error: cannot convert 'std::string' to 'const char*' 
for argument '1' to 'xmlDoc* xmlParseFile(const char*)'|

Я сталкивался с этим много раз, и это сводит меня с ума.

Я бы предпочел не использовать векторы, если это возможно (добавляет еще один шаг при инициализации функции.

Что я делаю не так? Я пытался найти это, но не нашел удовлетворительногоответы.

Заранее спасибо.

1 Ответ

6 голосов
/ 26 сентября 2010
file = xmlParseFile(filename.c_str());
...