2013-11-08 1 views
0

Я пытаюсь создать приложение, которое вводит пользователя, помещает его в вектор/базу данных и выводит результаты. Когда я ввожу код в свой компилятор командной строки Windows, я просто получаю, что он дает мне путь C:/users/app/data/local/temp, а затем неопределенную ошибку ссылки практически на все, cin, cout и т. Д. Первоначально это было только давая мне обычные ошибки, но когда я удалял ошибки, это давало мне это, тогда как если бы я должен был удалить полуколону, это дало бы мне только одну ошибку. Любые идеи о том, что может вызвать это?Командная строка undefined ссылка на все

MP3.H

#define MP3_H 
#include <iostream> 
#include<string> 

using namespace std; 

class MP3 
{ 

public: 

    MP3();//constructor 
    MP3(string,string,int,int,string); 
    ~MP3(); 

    string getName() const; 
    string getSongName() const; 
    int getDuration() const; 
    int getReleaseYear() const; 
    string getReview() const; 

    private: 
    string artistMP; 
    string songMP; 
    int duationMP; 
    int releaseyearMP; 
    string reviewMP; 
} 
#endif 

MP3.cpp

#include "MP3.h" 



MP3::MP3(); 
MP3::MP3(string artist,string song,int duration,int releaseyear,string review){ 

artistMP=artist; 
songMP=song; 
durationMP=duration; 
releaseyearMP=releaseyear; 
reviewMP=review; 

} 
~MP3::MP3(); 

string MP3::getName()const;{ 
return artistMP; 
} 

string MP3::getSongName()const;{ 
return songMP; 
} 

int MP3::getDuration()const;{ 
return durationMP; 
} 

int MP3::getReleaseYear()const;{ 
return releaseyearMP; 
} 

string MP3::getReview()const;{ 
return reviewMP; 
} 

main.cpp

#include<vector> 
#include "MP3.h" 


void fillVector(vector<MP3>&);//5 

void print (const vector<MP3>&);//7 

int main() 

{ 

vector<MP3> myRecord; 

fillVector(myRecord); 
print(myRecord); 

return 0; 
} 


void fillVector(vector<MP3> & newMyRecord){//22 

cout<<"How many songs in the playlist baby"; 
int recordSize; 
cin>>recordSize; 

for(int i=0;i<recordSize;i++) 

{ 
string artist; 
    string song; 
int duration; 
int releaseyear; 
string review; 

cout<<"Enter Artist Name:"; 
cin>>artist; 
cout<<"Enter Song Name:"; 
cin>>song; 
cout<<"Enter Song Duration(in seconds):"; 
cin>>duration; 
cout<<"Enter Release Year:"; 
cin>>releaseyear; 
cout<<"Enter Brief Review:"; 
cin:review; 

MP3 newMP3(artist,song,duration,releaseyear,review); 
newMyRecord.push_back(newMP3); 
cout<<endl; 


} 
cout<<endl; 
} 


void print (const vector<MP3>&newMyRecord)//58 

{ 
unsigned int size = newMyRecord.size(); 
for (unsigned int i=0;i<size;i++){ 

cout<<"Artist:"<< newMyRecord[i].getName()<<endl; 
cout<<"SongName:"<< newMyRecord[i].getSongName()<<endl; 
cout<<"Duration:"<< newMyRecord[i].getDuration()<<endl; 
cout<<"ReleaseYear:"<< newMyRecord[i].getReleaseYear()<<endl; 
cout<<"Review:"<< newMyRecord[i].getReview()<<endl; 
} 

} 

}; 

ТИА

+1

Возможно, вам нужно отобразить использованную вами командную строку и небольшой образец сообщений об ошибках (5 или около того). Скорее всего, вы каким-то образом не указали, какие библиотеки использовать, или вы указали библиотеки, которые не существуют, или что-то в этом роде. –

+0

mp3.h отсутствует '#ifndef MP3_H' вверху. – ixe013

+0

«введите код в мой компилятор командной строки Windows» - ummm ... что? – twalberg

ответ

1

Построение программ происходит в (по крайней мере) два этапа , компиляция и связывание. Неопределенные ссылки - это ошибки компоновщика. Если вы получаете ошибку компоновщика, это означает, что компиляция прошла успешно. Но если у вас есть ошибки компилятора (например, плохой синтаксис, чтобы делать с полуколонами), то связывания не происходит, поэтому вы не видите никаких ошибок компоновщика (например, неопределенные ссылки).