Hi principiante iam in C++ ho classe con metodi statici e non posso accedervi mi genera un erroreC++ simbolo esterno non risolto
1>------ Build started: Project: CPractice, Configuration: Debug Win32 ------
1> Source.cpp
1>Source.obj : error LNK2001: unresolved external symbol "private: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > CPractice::name" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@A)
1>c:\users\innersoft\documents\visual studio 2012\Projects\CPractice\Debug\CPractice.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
e qui è il mio codice
#include <iostream>
#include <stdio.h>
#include <cstdlib>
#include <string>
using namespace std;
class CPractice
{
public:
static void setName(string s)
{
name = s;
}
static string getName()
{
return name;
}
private:
static string name;
};
int main()
{
CPractice::setName("Name");
cout << "\n" << CPractice::getName();
system("PAUSE");
return EXIT_SUCCESS;
}
ho pensato che il suo definito giá quando ho dichiarato. Le sue opere, grazie mille –
@SilvioMarijic È un errore comune che le persone hanno. La ragione per cui non è una definizione è di evitare di avere più definizioni. Se fosse una definizione e tu avessi incluso l'intestazione in molti altri file, avresti più definizioni dello stesso membro statico. Ad ogni modo, non dimenticare di dire grazie accettando la risposta che ti ha aiutato di più. –