Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Scatten
1 / 1 / 0
Регистрация: 28.04.2013
Сообщений: 55
#1

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

28.06.2013, 10:52. Просмотров 862. Ответов 20
Метки нет (Все метки)

Подскажите пожалуйста в моём случае конструктор копирования правильно реализован?

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
class Massiv
{
private:
 
      float *a;
      int n;
 
public:
 
      Massiv(int x)
      { n = x;
        a = new float[n];
      }
 
      virtual ~Massiv()
      {
          delete a;
      }
 
      Massiv(const Massiv& Copy)
      {
          this->n = Copy.n;
          this->a = new float[Copy.n];
      }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2013, 10:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конструктор копирования (C++):

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

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику - C++
#include "stdafx.h" #include <iostream> #include <conio.h> #include <windows.h> #include <math.h> #include <algorithm> using...

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

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

Конструктор копирования в c++ - C++
Добрый день, такая задача по с++ Какая ошибка в следующей реализации конструктора копирования по умолчанию и деструктора?? Какой еще...

Конструктор копирования - C++
class alpha { public: alpha(alpha& a) { //код } }; Подскажите, почему компилятор ругается если я пытаюсь передать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.06.2013, 15:15 #16
@BumerangSP, а если посмотреть сколько памяти выделится.
https://ideone.com/XtbyYq
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
28.06.2013, 15:22 #17

Не по теме:

@Tulosba, да, я это не смотрел)


Получается, он пишет в неразмеченую память. Все равно косяки какие-то.
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.06.2013, 15:32 #18
Цитата Сообщение от BumerangSP Посмотреть сообщение
Все равно косяки какие-то.
Конечно. Нельзя писать в память, если ее не выделили
Но это же то же самое, что и:
C++
1
2
3
4
int n;
int* p = new int[n];
n = 100;
cout << "Выделили элементов: " << n;
Добавлено через 4 минуты
Правильное решение будет - задать порядок членов
C++
1
2
    int n;
    int *a;
и опционально (иначе будет ворнинг) поменять порядок в инициализаторе конструктора:
C++
1
 A(int x): n(x), a( alloc(n) )
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
28.06.2013, 15:40 #19
@Tulosba, так-то оно так. Но вот почему компилеры (не студийный) промолчали, даже предупреждения не выдав...
Стоп, это ж UB?

UPD: не ideone, gcc тот же (в обновленном dev-cpp).
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.06.2013, 16:03 #20
Цитата Сообщение от BumerangSP Посмотреть сообщение
компилеры (не студийный) промолчали
ideone не пишет ворнинги, если нет ошибок. https://ideone.com/6UC49N

Добавлено через 19 минут
Цитата Сообщение от BumerangSP Посмотреть сообщение
gcc тот же
Может ворнинги не включены. У меня с -w1 уже выводит gcc 4.7.2
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
28.06.2013, 16:12 #21
Цитата Сообщение от Tulosba Посмотреть сообщение
Может ворнинги не включены
Да вроде включены. Другие ворнинги выходят.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2013, 16:12
Привет! Вот еще темы с ответами:

Конструктор копирования - C++
Здравствуйте) объясните пожалуйста в чём проблема при описании в классе конструктора копирования компилятор выдаёт ошибку:error C3699:...

Конструктор копирования - C++
#include &lt;iostream&gt; using namespace std; class test { public: int x; test(int num); test(const...

Конструктор копирования - C++
Добрый вечер. Начал изучать перегрузку операций и конструктор копирования. Лазил в инете и налепил такой код. Только вот не могу понять как...

Конструктор копирования - C++
Всем привет. У меня такая проблема: есть некий класс, допустим Test: class Test { protected: int value; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.06.2013, 16:12
Ответ Создать тему
Опции темы

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