Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с файлами https://www.cyberforum.ru/ cpp-beginners/ thread2493903.html
В общем и целом у меня есть задача в тексте есть как это не странно текст и надпись,например - link "namefile.txt", мне нужно взять из этого файла текст записать вместо этой надписи (link...
C++ Не открывается файл при запуске программы через .exe
Программа должна открывать файл и, при запуске программы через ctrl+f5 (программирую в Visual Studio) файл открывается нормально, но если запускать программу с помощью .exe файла, то открыть файл не...
C++ Найти НОД для четырёх натуральных чисел https://www.cyberforum.ru/ cpp-beginners/ thread2493879.html
Помогите пожалуйста. Задача: Найти НОД для четырёх данных натуральных чисел. Числа должны вводится с клавиатуры. В С++. Заранее спасибо)
C++ Ввести строку. Вывести количество шагов чтобы найти заданное слово Дано слово с более 7 и менее 256 заглавных латинских букв. на каждом шаге из слова можно удалить букву или несколько стоячих рядом букв. Напишите программу, которая находит наименьшее количество... https://www.cyberforum.ru/ cpp-beginners/ thread2493848.html
Как использовать этот код? C++
Привет всем новичкам и экспертам в С++ (экспертам в особенности :p )! Я совсем не разбираюсь в С++, но я занимаюсь моддингом одной старой игры и местами знания в С++ там необходимы. Для решения моей...
C++ Создание масивов unsigned char buffer; evt_le_meta_event* meta = (evt_le_meta_event*)(buffer + HCI_EVENT_HDR_SIZE + 1); что этот кусок код делает? точнее на что будет указывать meta? на hci_event_hdr_size+1-нный... https://www.cyberforum.ru/ cpp-beginners/ thread2493830.html
C++ Лаунчер для игры с UDP https://www.cyberforum.ru/ cpp-beginners/ thread2493805.html
Здравствуйте! У вас есть на примете ХОРОШИЙ лаунчер, с открытым кодом, с возможностью обмена файлами по UDP? По типу того, что у Гайдзин(War thunder).
C++ Отличие std::move от & ?
Здравствуйте, Подскажите пожалуйста, никак не могу понять, чем принципиально отличается std::move от & ? То есть и то и то вроде как ппредача некой ссылки на обьект, а не создание копии...
C++ Как адекватно задержать консоль в С++ Sublime Text? https://www.cyberforum.ru/ cpp-beginners/ thread2493729.html
Всем привет! Решил недавно прикрутить к Sublime Text 3, возможность компиляции файлов .сpp c помощью MinGW. Действовал по этой инструкции: www.cyberforum.ru/blogs/390663/blog1982.html И, все...
C++ Программа падает на операторе delete https://www.cyberforum.ru/ cpp-beginners/ thread2493705.html
#include <iostream> int main() { int temp = 8; int* p = &temp; delete p;
C++ Совместное владение
Подскажите, можно ли реализовать так называемое совместное владение. Допустим я создаю сложносвязную структуру, которая содержит указатели на родителя, брата, второго брата и так далее, и когда...
C++ Нарисовать крест из символов․ https://www.cyberforum.ru/ cpp-beginners/ thread2493657.html
Всем привет, помагите решить задачу только использвав <iostream> Ввести длину и толщину креста и нарисовать его из символов *. Гарантируется, что и длина, и толщина - нечетные числа. Input 5 1 9...
0 / 0 / 0
Регистрация: 25.08.2019
Сообщений: 1
0

Как правильно обратиться к элементам полиморфного вектора (с умным указателем)? - C++ - Ответ 13789099

25.08.2019, 01:43. Показов 574. Ответов 2
Метки (Все метки)

Здравствуйте, по заданию нужно: создать абстрактный класс с функцией - норма, определить функцию для производных классов, создать в основной программе массив полиморфных объектов с виртуальной функцией норма и посчитать норму для 10 различных объектов.
Я, вроде как, более-менее все сделала ( не обращайте внимание на заполнение класса Complex_numbers), но при выполнении программы выводится только: "Hello world! Nice!Nice!Nice!" вместо значений, выводимых функцией norma.
Подскажите, пожалуйста, что и где нужно исправить для выполнения задания?


Primum.h:

#ifndef PRIMUM_H
#define PRIMUM_H

#include <iostream>
#include <vector>

using namespace std;

class Primum
{
public:
virtual void norma() =0;
};

class Complex_numbers: public Primum
{
double realp, mnemonicp, amplitude, angle;
public:
void norma();
Complex_numbers();
void print();
};

class Vector_of_10_elements: public Primum
{
vector <int> v[10];
public:
void norma();
Vector_of_10_elements();
void print();
};

class Matrix_2x2: public Primum
{
int ** matrix;
public:
void norma();
Matrix_2x2();
~Matrix_2x2();
void print();
};

#endif // PRIMUM_H


Primum.cpp :

#include <iostream>
#include "primum.h"
#include <cmath>

using namespace std;

Complex_numbers::Complex_numbers()
{
cout<<"Nice!";
}

void Complex_numbers:: print()
{
cout<<"Great!";
}

void Complex_numbers::norma()
{
cout<<"Fine!";
}

Vector_of_10_elements::Vector_of_10_elements()
{
for (int count=0;count<10;count++)
v[10].at(count)=rand()%201+(-100);
}

void Vector_of_10_elements::norma()
{
double result=0;
for (int count =0;count<10;count++)
result=result+abs(v[10].at(count));
result=sqrt(result);
cout<<result;
cout<<"hey";
}

void Vector_of_10_elements:: print()
{
for (int count=0;count<10;count++)
cout<<v[10].at(count)<<" ";
}

Matrix_2x2::Matrix_2x2()
{
matrix = new int* [2];
for (int count=0;count<2;count++)
matrix [count] = new int [2];
for (int i=0;i<2;i++)
{
for (int j=0;j<2;j++)
matrix[i][j]=rand()%201+(-100);
}
}

Matrix_2x2::~Matrix_2x2()
{
for (int count=0; count<2;count++)
delete [] matrix[count];
delete [] matrix;
}

void Matrix_2x2:: print()
{
for (int i=0;i<2;i++)
{
for (int j=0;j<2;j++)
{
cout<<matrix[i][j]<<" ";
}
cout<<endl;
}
}

void Matrix_2x2::norma()
{
int max=abs(matrix[0][0]);
for (int i=1;i<2;i++)
{
for (int j=1;j<2;j++)
{
if (abs(matrix[i][j])>max)
max=matrix[i][j];
}
cout<<max;
}
}


main.cpp :

#include <vector>
#include <memory>

using namespace std;

int main()
{
srand(time(0));
cout << "Hello World!" << endl;
vector <unique_ptr<Primum>> v;
v.push_back(unique_ptr<Complex_numbers> (new Complex_numbers));
v.push_back(unique_ptr<Complex_numbers> (new Complex_numbers));
v.push_back(unique_ptr<Complex_numbers> (new Complex_numbers));
v.push_back(unique_ptr<Vector_of_10_elements> (new Vector_of_10_elements));
v.push_back(unique_ptr<Vector_of_10_elements> (new Vector_of_10_elements));
v.push_back(unique_ptr<Vector_of_10_elements> (new Vector_of_10_elements));
v.push_back(unique_ptr<Matrix_2x2> (new Matrix_2x2));
v.push_back(unique_ptr<Matrix_2x2> (new Matrix_2x2));
v.push_back(unique_ptr<Matrix_2x2> (new Matrix_2x2));
v.push_back(unique_ptr<Matrix_2x2> (new Matrix_2x2));
for (int count=0; count<10;count++)
v.at(count)->norma();
return 0;
}

Вернуться к обсуждению:
Как правильно обратиться к элементам полиморфного вектора (с умным указателем)? C++
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2019, 01:43
Готовые ответы и решения:

Как достать значение из вектора с умным указателем?
vector&lt;shared_ptr&lt;int&gt;&gt;arr; arr.push_back(make_shared&lt;int&gt;(4)); auto it = arr.begin(); Как...

Проблема с умным указателем std::unique_ptr
здравствуйте. есть задание - написать небольшую простенькую игру, где есть базовый класс Unit,...

Как с указателем обратиться к 4му элементу массива
Имеем массив из 50 элементов. Как с помощью указателей обратиться к 4му элементу массива?

Как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой
int array = { {1,2,3}, {1,2},{1,2,3,4}, {1,2,3,4},{1,2,},}; for(int i = 0; i &lt; 25; i++) ...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2019, 01:43

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

Как обратиться к элементам ArrayList?
Как обратиться к элементам AraayList !?!? привожу код в аттаче!

Как обратиться к отмеченным элементам ListView
У ListView стоит параметр отображать чек боксы. Задача скопировать отмеченные файлы. что то...

Как обратиться к элементам формы по имени?
Здравствуйте. Есть 5 радиобуттонов, с названиями radioButton1 radioButton2 radioButton3...

Как обратиться к элементам управления на листе?
Товарищи, подскажите как можно обратиться к элементам управления combobox и comandbutton, которые...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.