В базовом есть конструктор без параметров, в производном с параметрами

В базовом и производном классах есть конструкторы без параметров.

В базовом классе конструктор отсутстивует, в производном создан без параметров

В базовом классе создан конструктор без параметров, в производном конструктор отсутствует.

В базовом и производном классе нет конструкторов.

Создаются пустые конструкторы в базовом и производном классе.

int main(int argc, char* argv[])

{

// вызов пустых конструкторов по умолчанию

Record x; // min, sec не определены

Sprint z; // min,sec,dec не определены

}

Аналогично на java:

class Record

{

protected int min,sec;

public void Init(int m,int s)

{

min=m;

sec=s;

}

}

class Sprint extends Record

{

private int dec;

public void Putdec(int d)

{

dec=d;

}

public void Init(int m,int s,int d)

{

min=m;

sec=s;

dec=d;

}

}

public class WorkSport

{

public static void main (String args[])

{

Record a=new Record(); // min,sec не определены

Sprint b=new Sprint(); // min,sec,dec не определены

}

}

class Record

{

private:

int min,sec;

public:

Record();

.........

};

Record::Record()

{

min=2;

sec=1;

}

class Sprint: public Record

{

private:

int dec;

public:

........

};

int main(int argc, char* argv[])

{

Record x; // вызов конструктора без параметров min=2, sec=1

Sprint z; // вызов базового конструктора Record min=2, sec=1, dec не определен

}

Аналогично на java:

class Record

{

protected int min,sec;

public Record() // конструктор без параметров базового класса

{

min=2;

sec=1;

}

}

class Sprint extends Record

{

private int dec;

public void Putdec(int d)

{

dec=d;

}

}

public class WorkSport

{

public static void main (String args[])

{

Record a=new Record(); // min=2, sec=1

Sprint b=new Sprint(); // min=2, sec=1 (вызов базового), dec не определен

}

}

class Record

{

private:

int min,sec;

public:

.........

};

class Sprint: public Record

{

private:

int dec;

public:

Sprint();

........

};

Sprint::Sprint()

{

min=3;

dec=2;

}

int main(int argc, char* argv[])

{

Record x; // пустой min, sec не определены

Sprint z; // min=3 dec=2, sec – не определен

}

Аналогично на java:

class Record

{

protected int min,sec;

}

class Sprint extends Record

{

private int dec;

public void Putdec(int d)

{

dec=d;

}

public Sprint()

{

min=3;

dec=2;

}

}

public class WorkSport

{

public static void main (String args[])

{

Record a=new Record(); // min,sec не определены

Sprint b=new Sprint(); // min=3 dec=2 sec не определен

}

}

class Record

{

private:

int min,sec;

public:

Record();

.........

};

Record::Record()

{

min=5;

sec=4;

}

class Sprint: public Record

{

private:

int dec;

public:

Sprint();

........

};

Sprint::Sprint()

{

min=3;

dec=2;

}

int main(int argc, char* argv[])

{

Record x; // min=5 sec=4

Sprint z; // min=3 dec=2 sec=4 – вызов базового конструктора

}

Аналогично на java:

class Record

{

protected int min,sec;

public Record()

{

min=5;

sec=4;

}

}

class Sprint extends Record

{

private int dec;

public void Putdec(int d)

{

dec=d;

}

public Sprint()

{

min=3;

dec=2;

}

}

public class WorkSport

{

public static void main (String args[])

{

Record a=new Record(); // min=5,sec=4

Sprint b=new Sprint(); // min=3 dec=2 sec=4 - вызов базового конструктора

}

}

class Record

{

private:

int min,sec;

public:

Record();

.........

};

Record::Record()

{

min=1;

sec=2;

}

class Sprint: public Record

{

private:

int dec;

public:

Sprint(int d);

........

};

Sprint::Sprint(int d)

{

dec=d;

}

int main(int argc, char* argv[])

{

Record x; // min=1 sec=2

Sprint z(5); // min=1 sec=2 dec=5 // сначала вызывается конструктор базового класса

}

Аналогично на java:

class Record

{

protected int min,sec;

public Record()

{

min=1;

sec=2;

}

}

class Sprint extends Record

{

private int dec;

public void Putdec(int d)

{

dec=d;

}

public Sprint(int d)

{

dec=d;

}

}

public class WorkSport

{

public static void main (String args[])

{

Record a= new Record(); // min=1,sec=2

Sprint b= new Sprint(5); // min=1,sec=2,dec=5

b.Putdec(4);

System. out. printf("%d", p);

}

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: