この問題は以前にもあったことは知っていますが、解決策が見つかりませんでした。だから - Visual Studio 2010 でこのエラーが発生しています。
エラー LNK2001: 未解決の外部シンボル "class Czas __cdecl data(void)" (?data@@YA?AVCzas@@XZ)
私は main() 関数を持っていて、propetites に設定されたコンソールを持っています。
これは私のコードです:
Czas.h
#ifndef CZAS_H
#define CZAS_H
class Czas{
private:
int dzien;
int miesiac;
int rok;
public:
int Dzien() const;
int Miesiac() const;
int Rok() const;
Czas(int dl, int m, int r);
void Ustaw (int d, int m, int r);
void Wypisz() const;
void Wpisz();
void koryguj();
int porownaj (const Czas& wzor) const;
};
#endif
Czas.cpp
#include "Czas.h"
#include <iostream>
using namespace std;
int dzien;
int miesiac;
int rok;
int Czas::Dzien() const
{
return dzien;
}
int Czas::Miesiac() const
{
return miesiac;
}
int Czas::Rok() const
{
return rok;
}
Czas::Czas(int d=1, int m=1, int r=1970)
{
dzien = d;
miesiac = m;
rok = r;
koryguj();
}
void Czas::Ustaw (int d, int m, int r)
{
dzien = d;
miesiac = m;
rok = r;
}
void Czas::Wypisz() const
{
//wypisujemy dzien;
if (dzien<10)
cout<<"0"<<dzien<<".";
else
cout<<dzien<<".";
//wypisujemy miesiac
if (miesiac<10)
cout<<"0"<<miesiac<<".";
else
cout<<miesiac<<".";
//wypisujemy rok
cout<<rok;
}
void Czas::Wpisz()
{
cin>>dzien;
cin>>miesiac;
cin>>rok;
koryguj();
}
void Czas::koryguj()
{
if (dzien>31)
dzien = 31;
if (dzien<1)
dzien = 1;
if (miesiac>12)
miesiac = 12;
if (miesiac<1)
miesiac = 1;
}
int Czas::porownaj (const Czas& wzor) const
{
if (dzien == wzor.Dzien() && miesiac == wzor.Miesiac() && rok == wzor.Rok())
return 1;
else
return 0;
}
そして最後に main.cpp
#include "Czas.h"
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
int flaga=1, flaga2=0;
Czas data();
cout<<"1 - Wpisz date\n2 - Wypisz date\n3 - Porownaj\nx - wyjscie";
while (flaga == 1)
{
fflush(stdin);
switch (getchar())
{
case '1':
{
data().Wpisz();
flaga2=1;
break;
}
case '2':
{
if (flaga2=0)
cout<<"Trzeba najpierw wpisac date!";
else
// data().Wypisz();
break;
}
case '3':
{
if (flaga2=0)
cout<<"Trzeba najpierw wpisac date!";
else
// czas().porownaj
break;
}
case 'x':
{
flaga=0;
break;
}
default:
{
cout<<"klawisz nieobslugiwany";
break;
}
}
}
return 0;
}
ここで何が間違っていますか?