chiefbutz
11-13-2007, 10:33 PM
Alright, I will be upfront. This is part of a homework assignment. I have everything coded, I am just getting some errors in my copy constructor and my overloaded assignment operator (operator=). If someone could help me find where I goofed in my copy constructor I would much appreciate it. This is an old webpage for the assignment that I put up (i just copied the content over b/c I didn't want to give my uni's website): http://chiefbutz.googlepages.com/cs215
Below is my code for my copy constructor:
// Copy Constructor
template<typename T>
FilingCabinet<T>::FilingCabinet(const FilingCabinet<T> & original)
{
DrawerNode<T> * odrawers, ndrawers, ndrawersFront;
FolderNode<T> * folders,;
maxFolders = original.maxFolders;
totalFolders = original.totalFolders;
// Now we have to copy the drawers and folders
odrawers = original.drawerList;
ndrawers = new DrawerNode<T>;
ndrawersFront = ndrawers;
while(odrawers != 0)
{
folders = odrawers->folderList;
while(folders != 0)
{
ndrawers->folderList->next = new FolderNode<T>(folders->key, folders->item);
folders = folders->next;
}
ndrawers->maximumKey = odrawers->maximumKey;
ndrawers->numFolders = odrawers->numFolders;
ndrawers->next = new DrawerNode<T>;
}
drawerList = ndrawersFront;
}
I get a segmentation fault from the line below:
ndrawers->folderList->next = new FolderNode<T>(folders->key, folders->item);
If you can't/won't help i do understand and I will keep working at this problem
Below is my code for my copy constructor:
// Copy Constructor
template<typename T>
FilingCabinet<T>::FilingCabinet(const FilingCabinet<T> & original)
{
DrawerNode<T> * odrawers, ndrawers, ndrawersFront;
FolderNode<T> * folders,;
maxFolders = original.maxFolders;
totalFolders = original.totalFolders;
// Now we have to copy the drawers and folders
odrawers = original.drawerList;
ndrawers = new DrawerNode<T>;
ndrawersFront = ndrawers;
while(odrawers != 0)
{
folders = odrawers->folderList;
while(folders != 0)
{
ndrawers->folderList->next = new FolderNode<T>(folders->key, folders->item);
folders = folders->next;
}
ndrawers->maximumKey = odrawers->maximumKey;
ndrawers->numFolders = odrawers->numFolders;
ndrawers->next = new DrawerNode<T>;
}
drawerList = ndrawersFront;
}
I get a segmentation fault from the line below:
ndrawers->folderList->next = new FolderNode<T>(folders->key, folders->item);
If you can't/won't help i do understand and I will keep working at this problem