funkcja zwracająca typ string

0

Witam,

przepisuję sobie swój moduł z Delphi do BCB i trafiłem na problem z funkcją zwracającą typ string. Plik nagłówkowy zaczyna się tak:

 //---------------------------------------------------------------------------

#ifndef ReikoH
#define ReikoH
//---------------------------------------------------------------------------
class TRS
{
private:	// User declarations
public:		// User declarations
        String user();
};
#endif

a plik CPP wygląda tak:

 //---------------------------------------------------------------------------


#pragma hdrstop

#include "Reiko.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

String user()
{
 return "bla bla bla";
}

I dostaję komunikat "Type name expected" ale typ jest podany a gdy zamienię String na int to wszystko gra. Co robię nie tak?

1
class TRS
  {
   public:
   string user();
  };

string TRS::user()
  {
   return "bla bla bla";
  }

Zacznij może od jakichś podstaw C++

0

Dobra, ale wciąż mam to samo. Przy string user(); dostaję ten sam komunikat.

1

Bo musisz jeszcze załączyć definicję tego typu. #include <string> jeśli mówimy o klasie std::string

0

Jak wyżej ... oraz dodać using namespace std; lub zamienić string na std::string lub:
użyć typu AnsiString - to ten odpowiednik String z Delphi.

0

Mam ją w pliku *.h i wciąż jest to samo.

0

Jeszcze raz... Oto plik nagłówkowy:

 //---------------------------------------------------------------------------

#ifndef ReikoH
#define ReikoH
#include <string>
//---------------------------------------------------------------------------
class TRS
  {
   public:
   AnsiString user();
  };

AnsiString TRS::user()
  {
   return "bla bla bla";
  }

Wciąż mam ten sam komunikat.

2

Masz wybrać jedno z:
1.

#include <string>
...
std::string ...
#include <string>
using namespace std;
...
string ...
#include <vcl.h>
...
AnsiString ...
0

dziękuję :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1