• Новый бот-ассистент на форуме Codeby

    Теперь на форуме работает ИИ-помощник @bot_cdb — твой технический ассистент по информационной безопасности. Просто упомяни @bot_cdb в любой теме, и получишь быстрый ответ на вопросы по CVE, инструментам, техникам атак и защиты. Бот анализирует весь тред перед ответом, проверяет актуальность данных и может предложить дополнительную помощь. Особенно полезен для проверки технических деталей, поиска документации и быстрых консультаций по пентесту, малвари, форензике и другим областям ИБ.

Шаблоны

  • Автор темы Автор темы 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

Похожие темы