• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Шаблоны

  • Автор темы Автор темы Alston
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alston

Создать 2 шаблонные классы с конструктором инициализации и конструктором копирования. Создать третий класс, наследующий свойства из двух классов.
Посмотрите правильно ли...
Код:
#include <iostream>

template<typename T> class A
{
private:
T _x;
public:
A(T x) : _x(x) { }
A(const A& copy) : _x(copy._x) { }
T getX() const { return _x; }
};

template<typename T> class B
{
private:
T _y;
public:
B(T y) : _y(y) { }
B(const B& copy) : _y(copy._y) { }
T getY() const { return _y; }
};

template<typename T> class C : public A<T>, public B<T>
{
public:
C(T x, T y) : A(x), B(y) { }
};

int main()
{
C<int> test(2, 4);
std::cout << test.getX() << " " << test.getY() << std::endl;
return 0;
А как сделать к етой задаче еще:
Создать объекты каждого из классов объяснить вызов конструкторов и деструкторов для каждого из объектов.???
 
Посмотрите правильно ли...


Это предложение? Вы предлагаете посмотреть правильно ли у вас написан код? Или вы считаете что он работает не правильно? Что то не вникаю в суть просьбы. Если есть проблема в правильности написания, лучший способ сравнить её с примером из умной книги. Наследование - это, новерно, разжеванная до молекул тема, не раз рассматривалась на этом форуме. link removed

Для шаблона аналогично.

...

По беглому осмотру вашего кода вроде бы всё написано правильно. Так что предлагаю конкретно поставить вопрос.

А как сделать к етой задаче еще:
Создать объекты каждого из классов объяснить вызов конструкторов и деструкторов для каждого из объектов.???

Давай по-порядку.

1) Создать объекты каждого из классов...

Что тут не понятно таки? Создать объект чрезвычайно трудная задача?

Пример из моего студенческого архива:

C++:
class base
{
int auditory;
int group;
char *prepod;
char *time;
char *stud_name;
public:

base();
~base();

void set_auditory(int);
int get_auditory();

void set_group(int);
int get_group();

void set_prepod(char*);
char* get_prepod();

void set_time(char*);
char* get_time();

void set_stud_name(char*);
char* get_stud_name();

void print();
};

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

base b; // Вот он родной, созданный нами, ОБЪЕКТ.

2) ...объяснить вызов конструкторов и деструкторов для каждого из объектов.

Чистая теория. Объясняю.

Смотри:
C++:
base();
~base();

Первый есть конструктор. Второй же есть диструктор. Имя обоих в точности должны ( обязаны ) совпадать с именем твоего класса. Конструктор инициализирует поля твоего класса. Конструктор не имеет ( не существует ) возвращаемого значения. Дело в том, что он вызывается системой автоматически, поэтому нет вызывающей программы или функции, которым твой конструктор мог бы возвратить какое-либо значение. Именно поэтому компилятор твой отличает конструктор от других методов класса.

Когда ты создаешь объект, конструктор base() вызывается автоматически. Далее он присваивает какие-нибудь значения полю.

Вот собственно и всё что ты должен "объяснить".

Диструктор... Ну тут ты уже сам постарайся. Подсказка: Тоже самое что и Конструктор, только наоборот...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD