Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Объектно ориентированное программирование С++

Константин Егоров Ученик (95), открыт 2 недели назад
Какая из перечисленных функций не может быть конструктором?
a.
void String ()
b.
String (String & s)
c.
String (const int a)
d.
String ()



Вызовет данный код ошибку компиляции?
class Rectangle {
public:
int a, b;
int sum ();
int square ();
~ Rect ();
};

a.
Ошибка: имя деструктора должно совпадать с именем класса
b.
Ошибка: имя деструктора не может начинаться с маленькой буквы
c.
Ошибки нет, все записано верно
d.
Ошибка: никакой идентификатор в С ++ не может начинаться со знака «~»




Представлен пример объявления класса и создание объекта:

class demo {

int x;

public:

demo() { x = 0; }

demo(int i) { x = i; }

};

void main() {

class demo a[20];

}

Какой конструктор вызывается в данном случае?

a.
Конструктор не вызывается в данном случае
b.
Конструктор с параметрами
c.
Конструктор без параметров (по умолчанию)
d.
Конструктор копирования



Представлен класс Time

class Time {

public:

int hour, min, sec;

Time(int h, int m, int s) { hour = h; min = m; sec = s; }; // Конструктор с параметрами

~Time() {}; // Деструктор

// Функции доступа

int get_hour();

int get_min();

int get_sec();

Time & set_hour(int);

Time & set_min(int);

Time & set_sec(int);

};
1 ответ
+79655558415 Знаток (263) 2 недели назад
Давайте разберем каждый вопрос по порядку:

1. **Какая из перечисленных функций не может быть конструктором?**
- Ответ: a. `void String()`
Объявление конструктора не должно иметь возвращаемого типа и в случае с `void String()`, это не соответствует типичному объявлению конструктора.

2. **Вызовет данный код ошибку компиляции?**
- Ответ: a. `Ошибка: имя деструктора должно совпадать с именем класса`
В данном классе `Rectangle`, имена конструктора и деструктора должны совпадать с именем класса, поэтому обозначение деструктора как `~Rect()` вызовет ошибку компиляции.

3. **Какой конструктор вызывается в данном случае?**
- Ответ: c. `Конструктор без параметров (по умолчанию)`
В данном случае создается массив объектов класса `demo`, что вызывает вызов конструктора по умолчанию, т.е. `demo()` без параметров.

Надеюсь, это поможет вам разобраться в вопросах по объектно-ориентированному программированию на C++!
Похожие вопросы