Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Progi / Lesson 6 / lec6.doc
Скачиваний:
30
Добавлен:
28.03.2015
Размер:
342.53 Кб
Скачать

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

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

С++

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

{

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

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

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

}

Java

public class WorkSport

{

public static void main (String args[] )

{

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

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

}

}

C#

class Program

{

static void Main(string[] args)

{

Recordx=newRecord(); // вызов пустого конструктора по умолчанию

Sprintz=newSprint(); // вызов пустого конструктора по умолчанию

}

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

При создании объекта производного класса вызывается конструктор базового класса

C++

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[])

{

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

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

}

Java

class Record

{

protected int min,sec;

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

{

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 не определен

}

}

C#

class Record

{

private:

int min,sec;

public:

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

{

min=2;

sec=1;

}

.........

};

class Sprint : public Record

{

private int dec;

........

};

class Program

{

static void Main(string[] args)

{

Recordx=newRecord(); // вызов конструктора без параметровmin=2,sec=1

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

}

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

C++

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[])

{

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

Sprintz;// вызов конструктора Sprint min=3 dec=2 , sec – не определен

}

Java

class Record

{

protected int min,sec;

}

class Sprint extends Record

{

private int dec;

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(); // вызов конструктора Sprint min=3 dec=2 sec не определен

}

}

C#

class Record

{

private int min,sec;

.........

};

class Sprint : public Record

{

private int dec;

public Sprint() // конструктор производного класса

{

min=3;

dec=2;

}

........

};

static void Main(string[] args)

{

Recordx=newRecord(); // вызов конструктора без параметровminsecне определены

Sprintz=newSprint();// вызов конструктора Sprint min=3, sec не определен, dec=2

}

Соседние файлы в папке Lesson 6