2015-05-16 6 views
-4

Я пытаюсь добавить два QStrings в один. Я много читала о:Как объединить два QStrings в один?

QString NAME = QString + QString

, но это не помогает мне здесь. Вот как мой код выглядеть так далеко:

test.h

#ifndef TEST_H 
#define TEST_H 

#include <QString> 
#include <QFile> 
#include <QDir> 

class Test 
{ 
public: 
    void createProject(QString* p, QString*n); 
}; 

#endif // TEST_H 

test.cpp

#include "test.h" 
#include <QFile> 
#include <QString> 
#include <QDir> 

void Test::createProject(QString *p, QString *n) 
{ 
    QString result = p + n; 
    QDir dir(result); 
    if (dir.exists()) 
    { 
     // ok 
    } 
    else 
    { 
     printf("Error!\n"); 
    } 
} 

(игнорировать код о проверке, если каталог существует, кстати, я использование Qt 4.8.6)

Так что теперь, когда я пытаюсь скомпилировать, я получаю эту ошибку:

test.cpp: In member function 'void Test::createProject(QString*, QString*)': test.cpp:8:21: error: invalid operands of types 'QString*' and 'QString*' to binary 'operator+'
QString result = p + n;

Как я могу сделать эту работу? Также использование здесь + = вместо + не работает.

~ Jan

+1

Вы пытаетесь найти сумму двух указателей, которые не допускаются. То, что вы, вероятно, хотите сделать, это передать 'QString' в качестве ссылок или значений. – Predelnik

ответ

3

Действительно, вы добавляете свой адрес, как p и n являются указателем. попробуйте добавить их значение как:

QString result = *p + *n; 
+0

Спасибо! Это сработало. Однако я слишком много читал о QString = QString + QString, но не помнил о указателях;) – Jan

Смежные вопросы