Hi I made a simple C++ program and I'm getting errors and I don't know what I'm doing wrong. I'm new to C++ syntax so I can't figure out what mistake I made that is causing the stated linker errors. The generated error complains that my Test1::getNmNeighborhoodEntry() function does not exist so linking can't happen. I must be missing something obvious a more seasoned programmer can see. Here is sample code that generates this error:
ITest.h
Code:
#ifndef ITest_H
#define ITest_H
//#[ ignore
#ifdef _MSC_VER
// disable Microsoft compiler warning (debug information truncated)
#pragma warning(disable: 4786)
#endif
//#]
//## auto_generated
#include <string>
//## auto_generated
#include <algorithm>
//## auto_generated
//## link itsNmNeighborhoodEntry
class NmNeighborhoodEntry;
//## class ITest
class ITest {
//#[ ignore
//// Constructors and destructors ////
public :
//## auto_generated
virtual ~ITest();
//// Relations and components ////
protected :
NmNeighborhoodEntry* itsNmNeighborhoodEntry; //## link itsNmNeighborhoodEntry
};
#endif
ITest.cpp
Code:
//## auto_generated
#include "ITest.h"
//## link itsNmNeighborhoodEntry
#include "NmNeighborhoodEntry.h"
//## class ITest
ITest::~ITest() {
}
Test1.h
Code:
#ifndef Test1_H
#define Test1_H
//#[ ignore
#ifdef _MSC_VER
// disable Microsoft compiler warning (debug information truncated)
#pragma warning(disable: 4786)
#endif
//#]
//## auto_generated
#include <string>
//## auto_generated
#include <algorithm>
//## class Test1
#include "ITest.h"
//## auto_generated
class NmNeighborhoodEntry;
//## class Test1
class Test1 : public ITest {
//#[ ignore
// Default Constructor is Private
public:
Test1();
// Default Copy Constructor is Private
private:
Test1(const Test1& self);
// Default Assignment Operator is Private
private:
Test1& operator=(const Test1& aTest1);
//#]
//// Constructors and destructors ////
public :
//## auto_generated
~Test1();
NmNeighborhoodEntry* getNmNeighborhoodEntry();
};
#endif
Test1.cpp
Code:
//## auto_generated
#include "Test1.h"
//## auto_generated
#include "NmNeighborhoodEntry.h"
NmNeighborhoodEntry* itsNmNeighborhoodEntry;
//## class Test1
Test1::~Test1() {
}
Test1::Test1() {
}
NmNeighborhoodEntry* getNmNeighborhoodEntry() {
//return itsNmNeighborhoodEntry;
return NULL;
}
NmNeighborhoodEntry.h
Code:
#ifndef NmNeighborhoodEntry_H
#define NmNeighborhoodEntry_H
//#[ ignore
#ifdef _MSC_VER
// disable Microsoft compiler warning (debug information truncated)
#pragma warning(disable: 4786)
#endif
//#]
//## auto_generated
#include <string>
//## auto_generated
#include <algorithm>
//## class NmNeighborhoodEntry
class NmNeighborhoodEntry {
//#[ ignore
// Default Constructor is Private
private:
NmNeighborhoodEntry();
// Default Copy Constructor is Private
private:
NmNeighborhoodEntry(const NmNeighborhoodEntry& self);
// Default Assignment Operator is Private
private:
NmNeighborhoodEntry& operator=(const NmNeighborhoodEntry& aNmNeighborhoodEntry);
//#]
//// Constructors and destructors ////
public :
//## auto_generated
~NmNeighborhoodEntry();
bool myIsPending; //## attribute myIsPending
unsigned short index; //## attribute myNodeIndex
};
#endif
[
NmNeighborhoodEntry.cpp
Code:
//## auto_generated
#include "NmNeighborhoodEntry.h"
//## class NmNeighborhoodEntry
NmNeighborhoodEntry::~NmNeighborhoodEntry() {
}
driver.cpp
Code:
//#include "ITest.h"
#include "Test1.h"
//#include "Test2.h"
#include "NmNeighborhoodEntry.h"
Test1 *test1;
//Test2 *test2;
NmNeighborhoodEntry* myNmNeighborhoodEntry;
void main() {
test1 = new Test1;
//test2 = new Test2;
//test1->itsNmNeighborhoodEntry = NULL;
myNmNeighborhoodEntry = test1->getNmNeighborhoodEntry();
}