PDA

View Full Version : سوال: خطا در کامپایل



hajizadeh.m
یک شنبه 27 آذر 1390, 08:37 صبح
سلام دوستان.من این برنامه ساده رو در visual studio 2010 اجرا کردم اما خطا برای ساختن اشیا میده.
اینو هم میدونم که وقتی توی کلاس متغیر استاتیک تعریف میشه باید جایی بیرون فایل مقدار اولیه بهش بدیم و من این کارو ذرون main انجام دادم.
منتظر راهنماییتون هستم...


#include "Kelas.h"

int main()
{
Kelas::str[0][0]="A";
Kelas::str[0][1]="B";
Kelas::str[1][0]="C";
Kelas::str[1][1]="D";

Kelas k1;
return 0;
}

#ifndef KELAS_H
#define KELAS_H

#include <iostream>
#include <string>
using namespace std;


class Kelas
{
public:
Kelas(void);
virtual ~Kelas(void);
static string str[2][2];
};

#endif

#include "Kelas.h"

Kelas::Kelas(void)
{
for (int i=0;i<2;i++)
for(int j=0;j<2;j++)
cout<<str[i][j]<<" ";
}


Kelas::~Kelas(void)
{
}


اینم خطاش :


Error 1 error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > (* Kelas::str)[2]" (?str@Kelas@@2PAY01V?$basic_string@DU?$char_traits @D@std@@V?$allocator@D@2@@std@@A) C:\Users\Mohammad\documents\visual studio 2010\Projects\3\3\Kelas.obj 3
Error 2 error LNK2019: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > (* Kelas::str)[2]" (?str@Kelas@@2PAY01V?$basic_string@DU?$char_traits @D@std@@V?$allocator@D@2@@std@@A) referenced in function _main C:\Users\Mohammad\documents\visual studio 2010\Projects\3\3\Main.obj 3
Error 3 error LNK1120: 1 unresolved externals C:\Users\Mohammad\documents\visual studio 2010\Projects\3\Debug\3.exe 1 1 3

b.saminjad
سه شنبه 29 آذر 1390, 19:26 عصر
برای استفاده از داده ی استاتیک باید ان را در بیرون از کلاس(نه تابع main) و قبل از main به صورت:

datatype classname::var=data
مثال:


" string class1::x = "barnamenevis