Sil*_*jic 6 c++ variables static class
嗨iam begginer在c ++我有静态方法的类,我无法访问它,它会引发我一个错误
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" (?name@CPractice@@0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@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 ==========
Run Code Online (Sandbox Code Playgroud)
这是我的代码
#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;
}
Run Code Online (Sandbox Code Playgroud)
Jos*_*eld 18
static string name;
Run Code Online (Sandbox Code Playgroud)
实际上static,这条线只是声明 name - 你也需要定义它.只需将其放在您的类定义下方:
string CPractice::name;
Run Code Online (Sandbox Code Playgroud)
如果最终将类移动到相应的标头和实现文件,请确保将此定义放在实现文件中.它应该只在一个翻译单元中定义.
| 归档时间: |
|
| 查看次数: |
16135 次 |
| 最近记录: |