Hi mới bắt đầu iam tại C++ i có lớp học với phương pháp tĩnh và tôi không thể truy cập vào chúng nó ném cho tôi một lỗiC++ biểu tượng bên ngoài chưa được giải quyết
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 ==========
và đây là mã của tôi
#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;
}
tôi nghĩ rằng định nghĩa của nó allready khi tôi tuyên bố nó. Tác phẩm của nó, cảm ơn rất nhiều –
@SilvioMarijic Đó là một sai lầm phổ biến mà mọi người gặp phải. Lý do nó không phải là một định nghĩa là tránh có nhiều định nghĩa. Nếu đó là một định nghĩa và bạn đã bao gồm tiêu đề nó đã được đưa vào nhiều tệp khác, bạn sẽ có nhiều định nghĩa của cùng một thành viên tĩnh. Dù sao, đừng quên nói lời cảm ơn bằng cách chấp nhận câu trả lời đã giúp bạn nhiều nhất. –