Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

C 

Derived class - calls base class constructor aswell.

Hello, anyone can explain to me please why my derived class constructor is calling base class constructor aswell? c++

Code
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;

static int count = 0;


// base class
class Pardevejs {

protected:
    char name[20];
    char surname[20];
    int age;

private:

public:

    float hourlyWage;
    float hoursPerMonth;

    void setHourlyWage(float wage);
    float getHourlyWage();

    void setHoursPerMonth(float hours);
    int getHoursPerMonth();

    float sallary();

    // void setColor(char autoColor[]);
    void setName(char sellersName[]);
    char* getName();

    void setSurname(char sellersSurname[]);
    char*getSurname();

    void setAge(int sellersAge);
    int getAge();

    void printDetails();

    Pardevejs() {
        count++;

        setName("Janis");
        setSurname("Ozols");
        setAge(21);
        setHourlyWage(2.65);
        setHoursPerMonth(150);

        printDetails();

    }

    Pardevejs(char sellersName[], char sellersSurname[], int age,
        float hourlyWage, int hoursPerMonth) {
        count++;
        setName(sellersName);
        setSurname(sellersSurname);
        setAge(age);
        setHourlyWage(hourlyWage);
        setHoursPerMonth(hoursPerMonth);

        printDetails();

    }

    ~Pardevejs() {
        cout << endl << count << ". objekts tiek iznicinats" << endl;
        getch();

    }

    // set un get metodes private and protected laukiem
};

void Pardevejs::setName(char sellersName[]) {
    strcpy(name, sellersName);
}

char* Pardevejs::getName() {
    return name;
}

void Pardevejs::setSurname(char sellersSurname[]) {
    strcpy(surname, sellersSurname);
}

char* Pardevejs::getSurname() {
    return surname;
}

void Pardevejs::setAge(int sellersAge) {
    age = sellersAge;
}

int Pardevejs::getAge() {
    return age;
}

void Pardevejs::setHourlyWage(float wage) {
    hourlyWage = wage;
}

float Pardevejs::getHourlyWage() {
    return hourlyWage;
}

void Pardevejs::setHoursPerMonth(float hours) {
    hoursPerMonth = hours;
}

int Pardevejs::getHoursPerMonth() {
    return hoursPerMonth;
}

float Pardevejs::sallary() {
    float sallary;
    sallary = hoursPerMonth * hourlyWage;
    return sallary;
}

void Pardevejs::printDetails() {
    cout << count << ". darbinieka informacija:" << endl;
    cout << "Darbinieka informacija" << endl << endl;

    cout << "Pardeveja vards: " << name << endl;
    cout << "Pardeveja Uzvards: " << surname << endl;
    cout << "Pardeveja vecums: " << age << endl;

    cout << endl << "Algu informacija" << endl << endl;

    cout << "Nostradatas stundas: " << hoursPerMonth << endl;
    cout << "Stundas Samaksa: " << hourlyWage << endl;
    cout << "Alga: " << sallary() << " EUR";
    cout << endl << "----------------------------------------" << endl;

}

/*
Derived class
*/

class Partikas_Pardevejs : public Pardevejs {
private:

public:

    Partikas_Pardevejs() {
        count++;
        setName("Rainis");
        setSurname("Mulniks");
        setAge(45);
        setHourlyWage(2.2);
        setHoursPerMonth(140);

        printDetails();
    }
};

int _tmain(int argc, _TCHAR* argv[]) {

    Partikas_Pardevejs a;
    getch();
    return 0;
}
Empty super class constructors are called automatically, if you have argument you gotta add it to your derived class' constructor initialization list.


Possibly Related Threads...
Thread / Author Replies Views Last Post
[C] by lockheadApr 22, 2021 07:10 AM 0 145 Apr 22, 2021 07:10 AM
Last Post: lockhead
[C] by SмℯґƒMay 1, 2020 09:00 PM 2 150 May 1, 2020 09:00 PM
Last Post: 0xDEAD10CC
[C] by A Fresh StartApr 9, 2018 05:12 PM 3 202 Apr 9, 2018 05:12 PM
Last Post: Annabelle Lee