How to declare a string member in a class in c++
<p>I have an assignment, and I'm trying to read a file and count how many lines does it has. I'm trying to use classes, but I have no clue on how to declare a string member in the class. Here is the code:</p>

<pre><code>#include&lt;iostream&gt;
#include&lt;cmath&gt;
#include&lt;fstream&gt;
#include&lt;istream&gt;
#include&lt;string&gt;
#include&lt;iomanip&gt;

using namespace std;

// Clase Nodo 
class Nodo {

    Nodo* next;

public:
    Nodo() {};
    string strLinea;
string strAux1; // = "//p.";  
string strAux2; // = "//i.";  
string strAux3; // = "//d.";  
string strAux4; // = "//m.";

void SetVariables(string data)
{
       strLinea = data;
    }

//void SetData(float EPS, float DH)
void SetData(string S)
{ 
    strLinea = S;
};

void SetNext(Nodo* aNext) 
{ 
    next = aNext;
};

String Data() 
{ 
    return(strLinea);
};

Nodo* Next() 
{ 
    return next; 
};
};


class Lista {
    Nodo *head;

public:
    Lista() { head = NULL; };
    void Print();
    void Append(string strLinea);
    void Delete(string strLinea);
};



void Lista::Print() {

// ... Apuntador temporal ...
Nodo *tmp = head;

// ... No hay Nodos ...
if ( tmp == NULL ) {
cout &lt;&lt; "EMPTY" &lt;&lt; endl;
return;
}

// ... Existe un Nodo in the Lista ...
if ( tmp-&gt;Next() == NULL ) {
cout &lt;&lt; tmp-&gt;Data();
cout &lt;&lt; " --&gt; ";
cout &lt;&lt; "NULL" &lt;&lt; endl;
}
else {
// ... Recorre la lista y la imprime ...
do {
    cout &lt;&lt; tmp-&gt;Data();
    cout &lt;&lt; " --&gt; ";
    tmp = tmp-&gt;Next();
}
while ( tmp != NULL );

cout &lt;&lt; "NULL" &lt;&lt; endl;
}
}


 void Lista::Append(string strLinea){
 // ... Aquí crea a Nodo nuevo ...
 Nodo* newNodo = new Nodo();

 newNodo-&gt;SetData(strLinea);
 newNodo-&gt;SetNext(NULL);

 // ... Crea un apuntador temporal ...
 Nodo *tmp = head;

 if ( tmp != NULL ) {
 // ... El Nodo está en la Lista ...
 // ... Recorre la Lista ...
 while ( tmp-&gt;Next() != NULL ) {
     tmp = tmp-&gt;Next();
 }
 // ... El último Nodo de la lista ...
 tmp-&gt;SetNext(newNodo);
 }
 else {
 // ... Nuevo Nodo de la lista ...
 head = newNodo;
 }
}


void Lista::Delete(string strLinea){
    // ... Crea un Nodo temporal ...
    Nodo *tmp = head;

   // ... No hay Nodos ...
   if ( tmp == NULL )
      return;

   // ... Último Nodo de la Lista ...
   if ( tmp-&gt;Next() == NULL ) {
        delete tmp;
        head = NULL;
   }
   else {
    // ... Recorre los nodos ...
    Nodo *prev;
    do {


     if(tmp-&gt;Data() == strLinea) break;

         prev = tmp;
         tmp = tmp-&gt;Next();
    } while ( tmp != NULL );

    // ... Ajusta los Nodos ...
    prev-&gt;SetNext(tmp-&gt;Next());

    // ... Borra el Nodo actual ...
   delete tmp;
   }
  }




 int main(int argc, char* argv[])
 {
        string L;
        int intLineCounter = 0;

        Lista lista;



        ifstream infile;
        infile.open(argv[1], ios::in);
        if(argc != 2)
        {
             cout &lt;&lt; "ERROR.\n";
             return 1;
        }
       if(infile.fail())
       {
            cout &lt;&lt; "ERROR\n";
            return 1;
       }
       else
       {
            while(!infile.eof())
            {
                   getline(infile,L);
                   intLineCounter++;
                   cout&lt;&lt; L + "\n";
                   lista.Append(L);
            }
            infile.close();
            cout &lt;&lt; "Total lines: " &lt;&lt; intLineCounter &lt;&lt; endl;
           return 0;
      }
   }
</code></pre>

<p>The problem is in the class in the declaration String Data(). How to declare it? how to fix it? any ideas ? any suggestions?</p>
