My program keeps giving my undefined references to my vectors and items in namespace fun class driver and i cannot change it I
really need help I'm a pretty big noob at programming
/*
* Austin Gould
*
* main.cpp
* main to drivers in fun in the sun
*/
#include <iostream>
#include <fstream>
#include <vector>
//#include <process.h>
#include "Clear.h"
namespace fun{
class func{
public:
static void del();
static void make();
static void edit( int x );
static void rename();
static void warning( std::string name, int &x );
private:
};
class driver{
public:
static void getfileinfo( std::string filename, int &x );
static int size;
static int eff;
static int idnumber;
static std::vector<int> bmv;
static std::vector<int> amv;
static std::vector<int> bbv;
static std::vector<int> abv;
private:
};
};
namespace file{
class del{
public:
static void deletefile( std::string name ){
std::remove( name.c_str() );
}
};
class ren{
public:
static void rename( std::string oldname, std::string name ){
std::rename( oldname.c_str(), name.c_str() );
}
};
class open{
public:
static void openfile( std::string name,
std::string dname, int &x ){
std::ofstream myf;
myf.open( name.c_str() );
if( ! myf ){
x = 1;
}
else{
myf<< dname << fun::driver::idnumber;
x = 0;
}
myf.close();
return;
}
};
};
int main(){
char c;
int x = 1;
char *title = "Drivers For Eng, By: Austin Gould";
std::string filename = "Filedatainfo(donotdelete).txt";
clear::title::ctitle( title );
//_beginthread ( fun::driver::getfileinfo, 0, ( filename, x ) 12 );
fun::driver::getfileinfo( filename, x );
while( x != 0 ){
clear::clr::clearscr();
std::cout<< "Drivers in class" << std::endl
<< "[L]ookup drivers" << std::endl
<< "[C]hange data" << std::endl
<< "[D]elete a driver" << std::endl
<< "[M]ake a driver" << std::endl
<< "[R]ename a driver" << std::endl
<< "[E]xit" << std::endl
<< "Input: ";
std::cin>> c;
tolower( c );
if ( c == 'l' ){
x = 2;
fun::func::edit( x );
}
else if ( c == 'd' ){
fun::func::del();
}
else if ( c == 'c' ){
fun::func::edit( x );
}
else if ( c == 'm' ){
fun::func::make();
}
else if( c == 'r' ){
fun::func::rename();
}
else if ( c == 'e' ){
x = 0;
fun::driver::getfileinfo( filename, x );
}
else{
std::cout<< std::endl
<< "Error Input not matched"
<< std::endl
<< "Press Enter to Continue..."
<< std::endl;
std::cin.ignore( 1000, '\n' );
std::cin.ignore( 1000, '\n' );
}
}
return x;
}
void fun::func::del(){
clear::clr::clearscr();
std::string name;
int x = 3;
clear::dir::showdir();
std::cout<< std::endl
<< "Files in current dir" << std::endl
<< std::endl;
std::cout<< "Who would you like to Delete" << std::endl
<< "Name: ";
std::cin>> name;
clear::clr::clearscr();
fun::func::warning( name, x );
if ( x == 0 ){
file::del::deletefile( name );
}
else{
clear::clr::clearscr();
std::cout<< "The file was not deleted" << std::endl
<< "Press Enter to Continue..." << std::endl;
std::cin.ignore();
std::cin.ignore();
}
}
void fun::func::edit( int x ){
std::string name;
std::string fname;
std::string edita;
if( x == 1 ){
edita = "edit";
}
else{
edita = "lookup";
}
clear::clr::clearscr();
clear::dir::showdir();
std::cout<< std::endl << "Files in current dir" << std::endl
<< std::endl << "Who would you like to "<< edita
<< std::endl << "File Name: " ;
std::cin>> fname;
clear::clr::clearscr();
std::ifstream myf;
myf.open( fname.c_str(), std::ios::in );
myf>> name >> driver::idnumber;
int idnumber = fun::driver::idnumber;
while( idnumber > 0 ){
myf>>fun::driver::bbv[idnumber];
myf>>fun::driver::abv[idnumber];
myf>>fun::driver::bmv[idnumber];
myf>>fun::driver::amv[idnumber];
myf>>fun::driver::eff;
idnumber--;
}
std::cout<< "What day would you like to "<< edita << std::endl
<< "Current day is Day: " << fun::driver::idnumber
<< std::endl
<< "Day: ";
std::cin>> idnumber;
if ( x == 1 ){
}
else{
}
}
void fun::func::make(){
int x = 1;
clear::clr::clearscr();
std::string name;
std::string dname;
std::cout<< "What would you like the name of the "
<< "file to be" << std::endl
<< "File name: ";
std::cin >> name;
std::cout<< "What is the drivers name" << std::endl
<< "Name: ";
std::cin>> dname;
fun::func::warning( name, x );
if ( x == 1 ){
clear::clr::clearscr();
std::cout<< "Error file couldn't be made" << std::endl
<< "Press Enter to Continue..." << std::endl;
std::cin.ignore();
std::cin.ignore();
}
if ( x == 0 ){
file::open::openfile( name, dname, x );
}
if( x == 0 ){
clear::clr::clearscr();
std::cout<< "The file was made successfully" << std::endl
<< "Press Enter to Continue..." << std::endl;
std::cin.ignore();
std::cin.ignore();
}
}
void fun::func::rename(){
clear::clr::clearscr();
int x = 2;
std::string oldname;
std::string name;
std::cout<< "What file do you want to rename" << std::endl
<< "Name: ";
std::cin >> oldname;
clear::clr::clearscr();
std::cout<< "New name: ";
std::cin >> name;
clear::clr::clearscr();
fun::func::warning( oldname, x );
if( x == 1 ){
file::ren::rename( oldname, name );
}
else{
clear::clr::clearscr();
std::cout<< "The file " << oldname
<< "was not changed" << std::endl;
std::cin.ignore();
}
}
void fun::func::warning( std::string name, int &x ){
char yn;
std::string item;
clear::clr::clearscr();
if ( x == 3 ){
item = "delete the file ";
}
if( x == 2 ){
item = "rename the file ";
}
if ( x == 1 ){
item = "make the file ";
}
std::cout<< "Are you sure you want to " << item
<< name << std::endl << "( y/n ): ";
std::cin>> yn;
tolower( yn );
if ( yn == 'y' ){
x = 0;
}
else{
x = 1;
}
}
void fun::driver::getfileinfo( std::string filename, int &x ){
if ( x == 1 ){
std::ifstream myf;
myf.open( filename.c_str() );
if( !myf ){
std::cout<< "Error in creating main file program will now exit"
<< std::endl
<< "Press Enter to Continue..." << std::endl;
std::cin.ignore();
std::cin.ignore();
x = 0;
}
myf >> size >> idnumber;
myf.close();
}
if ( x == 0 ){
std::ofstream myf;
myf.open( filename.c_str(), std::ios::in );
myf << size << idnumber;
myf.close();
}
}
the program is unfinished and anything that refers to clear is part of my clear.h that i have been working on for the past month.
the error list is something like
Description Resource Path Location Type
undefined reference to `fun::driver::abv' main.cpp Drivers in the fun 4 20 270 C/C++ Problem
undefined reference to `fun::driver::amv' main.cpp Drivers in the fun 4 20 272 C/C++ Problem
undefined reference to `fun::driver::bbv' main.cpp Drivers in the fun 4 20 269 C/C++ Problem
undefined reference to `fun::driver::bmv' main.cpp Drivers in the fun 4 20 271 C/C++ Problem
undefined reference to `fun::driver::eff' main.cpp Drivers in the fun 4 20 273 C/C++ Problem
undefined reference to `fun::driver::idnumber' main.cpp Drivers in the fun 4 20 263 C/C++ Problem
undefined reference to `fun::driver::idnumber' main.cpp Drivers in the fun 4 20 265 C/C++ Problem
undefined reference to `fun::driver::idnumber' main.cpp Drivers in the fun 4 20 279 C/C++ Problem
undefined reference to `fun::driver::idnumber' main.cpp Drivers in the fun 4 20 454 C/C++ Problem
undefined reference to `fun::driver::idnumber' main.cpp Drivers in the fun 4 20 466 C/C++ Problem
undefined reference to `fun::driver::size' main.cpp Drivers in the fun 4 20 454 C/C++ Problem
undefined reference to `fun::driver::size' main.cpp Drivers in the fun 4 20 466 C/C++ Problem
Im using eclipse with mingw