Getting the following errors Error 1 error C2436 ctor membe

Getting the following errors:

Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565

Error 2 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 761

I need this code to COMPILE and RUN, but I cannot get rid of this error. Please Help!!

#include

#include

#include

#include

using namespace std;

enum contactGroupType

{// used in extPersonType

FAMILY,

FRIEND,

BUSINESS,

UNFILLED

};

class addressType

{

private:

string st_address;

string city;

string state;

int zip;

public:

void print(string, string, string, int)const;

void setStreet(string);

string getStreet()const;

void setCity(string);

string getCity()const;

void setState(string);

string getState()const;

void setZip(int);

int getZip()const;

void set(string, string, string, int);// set all address fields

string get()const;// get address as one concatenated string

addressType();

// ~addressType();

};

class personType

{

private:

string firstName;

string lastName;

public:

void print()const;

void setName(string first, string last);

string getFirstName()const;

string getLastName()const;

string get()const;// return First Last names concatenated

personType & operator=(const personType &);

personType(string, string);

personType();

};

class dateType

{

private:

int dMonth;

int dDay;

int dYear;

public:

void setDate(int month, int day, int year);

int getDay()const;

int getMonth()const;

int getYear()const;

void print()const;

string get()const;// return string representation as DD/MM/YYYY

dateType & operator=(const dateType & d);

dateType(int, int, int);

dateType();

};

class extPersonType :public personType {

private:

addressType address;// added members

dateType birthday;

contactGroupType group;

string phone;

public:

// methods

void setPhone(string);

string getPhone()const;

void setGroup(contactGroupType);

contactGroupType getGroup()const;

void setBirthday(int, int, int);

dateType getBirthday()const;

void print();

string get()const;// return string representation of ext person type

extPersonType & operator=(const extPersonType & p);

string groupToString(contactGroupType)const;

contactGroupType stringToGroup(string)const;

// constructors

extPersonType();

extPersonType(string first, string last);

};

// because we have no arrayListType, we are using our own

// implementation with a small subset of functions

class arrayListType

{

extPersonType array[500];

int size;

public:

arrayListType();

extPersonType & operator[](int i);

void removeLast();// remove last element

void add(const extPersonType &);// add new element

int getSize()const;// get array size

};

class addressBookType :public arrayListType

{

private:

static const char FS = \'\\t\';// field separator in file (TAB char)

int current;// current position

string fileName;// filename

fstream fileStream;// file as fstream

/* filiters */

contactGroupType fltGroup;

string fltFromLast, fltToLast;

dateType fltFromDate, fltTiDate;

/* flags for effective filters */

bool fltStatus, fltLast, fltDateRange, fltDate;

/* field numbering in the file */

static const int _first = 0;

static const int _last = 1;

static const int _street = 2;

static const int _city = 3;

static const int _state = 4;

static const int _phone = 5;

static const int _zip = 6;

static const int _year = 7;

static const int _month = 8;

static const int _day = 9;

static const int _group = 10;

static const int _end = _group;

public:

addressBookType();

bool readFile(string);// read file into addressBook array

bool writeFile(string);// pass filename, write to file

void reset();// reset \'current\' position

extPersonType * getNext();// allows to navigate in forward direction

/* by group name */

void setFilterStatus(contactGroupType);

/* by last name */

void setFilterLastname(string from, string to);// define range

/* by birthday */

void setFilterBirthday(dateType from, dateType to);

/* clear all filters */

void clearFilters();

void print(int i);// print personal data of [i] person

};

// Main program

int main()

{

return 0;

}

/*****************implementation of print & set function*****/

// constructor with parameters

addressType::addressType()

{

st_address = \"\";

city = \"\";

state = \"\";

zip = 0;

}

void addressType::set(string addr, string city, string state, int zip)

{

this->st_address = addr;

this->city = city;

this->state = state;

this->zip = zip;

}

void addressType::setStreet(string street)

{

this->st_address = street;

}

string addressType::getStreet()const

{

return this->st_address;

}

void addressType::setCity(string street)

{

this->city = street;

}

string addressType::getState()const

{

return this->state;

}

void addressType::setState(string street)

{

this->st_address = street;

}

void addressType::setZip(int code)

{

this->zip = code;

}

int addressType::getZip()const

{

return this->zip;

}

/* personType implementation */

personType::personType()

{// constructor

this->setName(\"\", \"\");

}

personType::personType(string first, string last){// constructor

this->setName(first, last);

}

void personType::setName(string first, string last)

{

firstName = first;

lastName = last;

}

string personType::getFirstName()const

{

return firstName;

}

string personType::getLastName()const

{

return lastName;

}

void personType::print()const

{

cout << get() << \" \";

}

string personType::get()const

{

return firstName + \" \" + lastName;

}

personType & personType::operator=(const personType & p)

{

setName(p.getFirstName(), p.getLastName());

return*this;

}

/* Constructor */

dateType::dateType()

{

setDate(1, 1, 1900);

}

dateType::dateType(int d, int m, int y)

{

setDate(d, m, y);

}

int dateType::getDay()const

{

return dDay;

}

int dateType::getMonth()const

{

return dMonth;

}

int dateType::getYear()const

{

return dYear;

}

void dateType::setDate(int d, int m, int y)

{

dDay = d;

dMonth = m;

dYear = y;

}

void dateType::print()const

{

cout << get() << \" \";

}

string dateType::get()const

{

string a;

a = dDay;

a += \"/\";

a += dMonth;

a += \"/\";

a += dYear;

return a;

}

dateType & dateType::operator=(const dateType & d)

{

this->dDay = d.getDay();

this->dMonth = d.getMonth();

this->dYear = d.getYear();

return*this;

}

/* Implementation of extPersonType */

extPersonType::extPersonType()

{

phone = \"\";

group = UNFILLED;

birthday.setDate(01, 01, 1900);

}

extPersonType::extPersonType(string first, string last) : personType::personType(first, last)

{

phone = \"\";

group = UNFILLED;

birthday.setDate(01, 01, 1900);

}

void extPersonType::setBirthday(int d, int m, int y)

{

birthday.setDate(d, m, y);

}

dateType extPersonType::getBirthday()const

{

return birthday;

}

void extPersonType::setGroup(contactGroupType gr)

{

group = gr;

}

contactGroupType extPersonType::getGroup()const

{

return group;

}

void extPersonType::setPhone(string ph)

{

phone = ph;

}

string extPersonType::getPhone()const

{

return phone;

}

// Override parent\'s \'get()\' add phone and birthday

string extPersonType::get()const

{

string result;

result = this->personType::get();

result = result + \" \" + birthday.get() + \" \" + phone + \" \" + groupToString(group);

return result;

}

extPersonType & extPersonType::operator=(const extPersonType & p)

{

// first call superclass\' operator=

(personType)*this = (personType)p;

// now assign birthday, phone and category

this->phone = p.getPhone();

this->birthday = p.getBirthday();

this->group = p.getGroup();

return*this;

}

string extPersonType::groupToString(contactGroupType a)const

{

string result;

switch (a)

{

case FAMILY:

result = \"FAMILY\";

break;

case FRIEND:

result = \"FRIEND\";

break;

case BUSINESS:

result = \"BUSINESS\";

break;

case UNFILLED:

result = \"\";

break;

}

return result;

}

contactGroupType extPersonType::stringToGroup(string a)const

{

contactGroupType result;

if (a.compare(\"FAMILY\") == 0) result = FAMILY;

else if (a.compare(\"FRIEND\") == 0) result = FRIEND;

else if (a.compare(\"BUSINESS\") == 0) result = BUSINESS;

else result = UNFILLED;

return result;

}

arrayListType::arrayListType()

{

size = 0;

}

int arrayListType::getSize()const

{

return size;

}

void arrayListType::removeLast()

{

size--;

}

void arrayListType::add(const extPersonType &p)

{

array[size++] = p;

}

extPersonType & arrayListType::operator[](int i)

{

return array[i];

}

/* addressBookType implementation */

addressBookType::addressBookType() : arrayListType::arrayListType()

{

reset();

clearFilters();

}

void addressBookType::reset()

{

current = 0;

}

void addressBookType::clearFilters()

{

fltStatus = fltDate = fltLast = fltDateRange = false;

}

/* Read array from file, return false on error */

bool addressBookType::readFile(string filename)

{

string line;

string fields[_end + 1];// _last index of the last field

extPersonType p;// temporary \'person\' instance

int pos1 = 0, pos2 = 0, index;

fileStream.open(filename.c_str(), ios::in);

reset();// reset \'current\' counter

clearFilters();

while (!fileStream.eof()){// read line by line

fileStream >> line;

// fields are in the following order:

// first, last, street, city, state, zip, phone, status, year, month, day

for (index = 0; index <= _end; index++) fields[index] = \"\";// initialize

pos2 = 0; pos1 = -1;

index = 0;

do

{// read field by field

pos1 = pos2 + 1;// +1 is for field separator

pos2 = line.find(FS, pos1);

fields[index] = line.substr(pos1, pos2 - pos1);// get field from line

index++;

}

while (pos2 >= 0 && index <= _end);

// now fields[] are filled with fields from file

p.setName(fields[_first], fields[_last]);

p.setPhone(fields[_phone]);

p.setGroup(p.stringToGroup(fields[_group]));// convert string to enum

// set birthday

p.getBirthday().setDate(atoi(fields[_month].c_str()),

atoi(fields[_day].c_str()),

atoi(fields[_year].c_str()));

// add \'p\' to array

this->add(p);

}

// while () next line from file

fileStream.close();

return true;

}

// Write to file (stub)

bool addressBookType::writeFile(string filename)

{

return true;

}

Solution


Actually while initializing constructors, you should not use :: operator for calling base class constructor. See my modification below. Remove :: operator for base class.
Ex:

while initializing child class,

Child::Child(): Base(){ /// Here you used Base::Base() which is wrong(for some compilers)
//
}

And also include header files. That\'s it. Apart from these things, your code is perfectly alright.

=================================================================================================
extPersonType::extPersonType(string first, string last) : personType::personType(first, last)
{
phone = \"\";
group = UNFILLED;
birthday.setDate(01, 01, 1900);
}

Change the above part of the code as below

extPersonType::extPersonType(string first, string last) : personType(first, last)
{
phone = \"\";
group = UNFILLED;
birthday.setDate(01, 01, 1900);
}

=================================================================================================

/* addressBookType implementation */
addressBookType::addressBookType() : arrayListType::arrayListType()
{
reset();
clearFilters();
}


change the above part of the code to

addressBookType::addressBookType() : arrayListType()
{
reset();
clearFilters();
}

Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:
Getting the following errors: Error 1 error C2436: \'{ctor}\' : member function or nested class in constructor initializer list on line 565 Error 2 error C2436:

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site