-
February 26th, 2010, 04:36 AM
#1
C++ string "Undefined symbols" error
Hello all - always hate to make my first post but after more than an hour of looking I can't figure out what I have done wrong...
I'm writing a simple program to store a tree of strings, and am getting the following error after compiling with g++.
Code:
Undefined symbols:
"Ontology::InsertTerm(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ItemType*)", referenced from:
Ontology::InsertTerm(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in ccDEky9Q.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Here is my Ontology.cpp file:
Code:
// Johan Henkens and Kevin Wang for CS24 Lab06 Winter 2010 UCSB
#include "Ontology.h"
Ontology::Ontology(ItemType* type){
head.push_back(type);
}
//Observers
bool Ontology::IsEmptyOnt(){
return head.size()==0;
}
// "" signifies no parent
bool Ontology::InsertTerm(string parent, string newNode){
if(parent.compare("")==0){
ItemType* tempRef = new ItemType();
tempRef->Initialize(newNode, NULL);
head.push_back(tempRef);
return true;
}
for(int i = 0; i < head.size();i++){
if(head[i]->GetData()==parent){
for(int o = 0; o<head[i]->getChildrenSize();o++){
if(head[i]->getChild(o)->GetData().compare(newNode)==0) return true;
}
ItemType* temp = new ItemType();
temp->Initialize(newNode,head[i]);
head[i]->pushToChildren(temp);
return true;
}
}
for(int i = 0; i < head.size();i++){
if(InsertTerm(parent, newNode, head[i])) return true;
}
return false;
}
bool InsertTerm(string parent, string newNode, ItemType* root){
if(root->GetData()==parent){
for(int i = 0; i<root->getChildrenSize();i++){
if(root->getChild(i)->GetData().compare(newNode)) return true;
}
ItemType* temp = new ItemType();
temp->Initialize(newNode,root);
root->pushToChildren(temp);
return true;
}
for(int i = 0; i < root->getChildrenSize();i++){
if(InsertTerm(parent, newNode, root->getChild(i))) return true;
}
return false;
}
Inside an included header in Ontology.h is
Code:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
so I doubt it is that I haven't included the right libraries.
I am completely lost as to where I am to go from here. Any advice would be wonderful
-
February 26th, 2010, 04:51 AM
#2
Re: C++ string "Undefined symbols" error
Yuck! Wrong subforum (I think?). My apologies
-
February 26th, 2010, 05:47 AM
#3
Re: C++ string "Undefined symbols" error
In your cpp file you have:
Code:
bool InsertTerm(string parent, string newNode, ItemType* root){
You just forgot the class name
Code:
bool Ontology::InsertTerm(string parent, string newNode, ItemType* root){
-
February 26th, 2010, 12:51 PM
#4
Re: C++ string "Undefined symbols" error
Originally Posted by Philip Nicoletti
In your cpp file you have:
Code:
bool InsertTerm(string parent, string newNode, ItemType* root){
You just forgot the class name
Code:
bool Ontology::InsertTerm(string parent, string newNode, ItemType* root){
That was it! Thank you very much.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|