Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Sergey Chepets
2 / 2 / 5
Регистрация: 10.12.2016
Сообщений: 141
Завершенные тесты: 1
1

Конструктор копирования

03.11.2017, 01:51. Просмотров 719. Ответов 4
Метки нет (Все метки)

Доброго времени суток!
Преподаватель попросил сделать конструктор копирования, но я изначально написал так программу, что щас и не разберусь как из главной программы переписать заполнения вектора в конструктор (для последующего копирования из гл. программы) так что бы потом можно было работать с этими векторами.
Можете помочь сделать конструктор копирования для этой программы, буду очень благодарен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <tchar.h>
#include <conio.h>
#include <iomanip>
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <ctime>
 
using namespace std;
//----------------------------------------------------
class BaseVector
{
public:
  int x;
public:
BaseVector(void){int x=0;}
  BaseVector(int ax){x=ax;}
 // ~BaseVector(void){}; /*DESTR*/
};
//----------------------------------------------------
class Vector:public BaseVector
{
private:
public:
  Vector(void):BaseVector(){};
  Vector(int a):BaseVector(a){};
  //~Vector(void){}; /*DESTR*/
  friend Vector operator*( Vector &, Vector &);
  friend Vector operator+( Vector &, Vector &);
  friend ostream & operator<<( ostream &, Vector &);
};
//----------------------------------------------------
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
int o,n,i;
 
      cout<<"Как создать массив? "<<endl;
      cout<<"Рандом - 1"<< endl << "Вручную - 2" << endl << "Ответ: "; cin>> o;
      system("CLS");
      cout<<"Веддите размерность вектора: ";
      cin>>n;
      system("CLS");
 
      Vector *V1=new Vector[n]; //инццилизация
      Vector *V2=new Vector[n];
 
      if (o==1){
 
      srand(time(NULL)); //функция подключения временеи к рандому
       // Заполнение случайными числами в диапазоне от -100 до 100
      for (int i = 0; i < n; i++)
      {
          V1[i].x = rand() % 101 - 50;
          V2[i].x = rand() % 201 - 100;
      }
 
for (i = 0; i < n; i++){
 cout<<"V1 ["<<i+1<<"]="<<V1[i];}
cout<<"_____________"<<endl;
 for (i = 0; i < n; i++){
 cout<<"V2 ["<<i+1<<"]="<<V2[i];}
cout<<"_____________"<<endl;
 
      }else{
 cout<<"Элементы вектора V1:\n";
 for (i = 0; i < n; i++) {
    cout<<"V1["<<i+1<<"]:";
    int a;
    cin>>a;
    V1[i].x=a;
 }
cout<<"Элементы вектора V2:\n";
 for (i = 0; i < n; i++) {
    cout<<"V2["<<i+1<<"]:";
    int a;
    cin>>a;
    V2[i].x=a;
 }
      }
 
 Vector *V3=new Vector[n];       //Произведение
 Vector *V4=new Vector[n];       //Cложение
 
//Вывод результата
cout<<"Результат:"<<"\n";
cout<<"Произведение:"<<endl;
 for (i = 0; i < n; i++)
 {
 V3[i]=V2[i]*V1[i];
 cout<<"V3["<<i+1<<"]="<<V3[i];
 }
cout<<"--------"<<"\n";
cout<<"Сумма:"<<endl;
 for (i = 0; i < n; i++)
{
 V4[i]=V2[i]+V1[i];
 cout<<"V4["<<i+1<<"]="<<V4[i];
 }
 cin.get();
 cin.get();
}
//----------------------------------------------------
ostream & operator<<( ostream & os, Vector &a){
  os<<a.x<<"\n";
 return os;
}
//---------------------------------------------------------------------------
Vector operator+( Vector &a, Vector &b)
{Vector tmp;
   tmp.x=a.x+b.x;
return(tmp);
}
//---------------------------------------------------------------------------
Vector operator*( Vector &a, Vector &b)
{Vector tmp;
int i;
   tmp.x=a.x*b.x;
return(tmp);
}
//---------------------------------------------------------------------------
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2017, 01:51
Ответы с готовыми решениями:

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных...

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) { this-&gt;iType_act =...

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include...

Конструктор инициализации, конструктор копирования, деструктор
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор...

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать...

4
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
03.11.2017, 02:14 2
Лучший ответ Сообщение было отмечено Sergey Chepets как решение

Решение

Цитата Сообщение от Sergey Chepets Посмотреть сообщение
как из главной программы переписать заполнения вектора в конструктор (для последующего копирования из гл. программы) так что бы потом можно было работать с этими векторами.
Не понятно о чём здесь речь.
Цитата Сообщение от Sergey Chepets Посмотреть сообщение
Можете помочь сделать конструктор копирования для этой программы
Конструктор копирования делается для класса, а не для программы. Для твоих классов явный конструктор копирования не требуется, достаточно неявного.
0
Sergey Chepets
2 / 2 / 5
Регистрация: 10.12.2016
Сообщений: 141
Завершенные тесты: 1
03.11.2017, 04:17  [ТС] 3
Не могу понять, а как в моем случае вызывать неявный конструктор копирования?
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
03.11.2017, 04:20 4
Цитата Сообщение от Sergey Chepets Посмотреть сообщение
а как в моем случае вызывать неявный конструктор копирования?
Он автоматически вызывается при необходимости.
0
Sergey Chepets
2 / 2 / 5
Регистрация: 10.12.2016
Сообщений: 141
Завершенные тесты: 1
03.11.2017, 04:28  [ТС] 5
Меня преподаватель попросил вызвать его, не подскажете как это сделать? (если можете, то кодом для наглядности).
0
03.11.2017, 04:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2017, 04:28

Конструктор копирования
Ребята!! Вроде все получается, да только вот сделала конструктор копирования (А он мне, правда,...

С++: new и конструктор копирования
Пусть есть класс Example (с конструктором копирования). Example *e1; e1 = ...; Example *e3 =...

Конструктор копирования
Помогите пожалуйста разобраться, необходимо добавить конструктор копирования, теорию знаю, а как на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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