2013-05-16 337 views
0

我怎麼可以這樣做:轉換QString時,的std :: string *


_name__GetAvailable inp; 

QString tmp; 
inp.From = tmp; 

這是 _GetAvailable類定義:

class SOAP_CMAC _name__GetAvailable 
{ 
public: 
    std::string *From; 
    std::string *To;  
    struct soap *soap; 
} 

我想這:

inp.From = tmp.toStdString(); 

但我已經得到了以下錯誤:如果你想有一個std::string指針

C:\Qt2\Qt5.0.1\Tools\QtCreator\bin\Ticket\mainwindow.cpp:49: error: cannot convert 'std::string {aka std::basic_string}' to 'std::string* {aka std::basic_string*}' in assignment

+2

@sashoalm這是如何重複?如果你看過這個問題,你會發現他已經*從'QString'轉換爲'std :: string'。他的問題是獲得一個*指針*到一個'std :: string' – jalf

+0

@sashoalm OP想要一個'std :: string *'不只是一個'std :: string'。 – zakinster

+1

如果你有一個std :: string,你應該能夠想出一個指針,或者你應該回去學習C++。 – sashoalm

回答

3

,你需要分配一個新的std::string

inp.From = new std::string(tmp.toStdString()); 

但我真的沒有看到您需要通過指針操作std::string的原因。

如果OAP_CMAC _name__GetAvailable是你的,你可以通過操縱價值std::string

class SOAP_CMAC _name__GetAvailable 
{ 
public: 
    std::string From; 
    std::string To;  
    struct soap *soap; 
} 

否則,不要忘記deletestd::string*FromTo在一些點。

+0

感謝它的工作 我用gSOAP工具包來創建一些頭文件和源文件 現在我正在使用它的類和函數,我不能改變它們的定義 – danitiger33