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

Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами http://www.cyberforum.ru/cpp-beginners/thread765066.html
#include "stdafx.h" #include "locale.h" #include "stdlib.h" #include "math.h" void main() { setlocale(LC_ALL,"rus"); int n,e,m,f,k,i; printf("Введите размерность матрицы \nнижнюю границу...
C++ Вычислить произведение элементов в столбцах с нечетным номером; удалить второй элемент первой строки Рябят выручайте!!! Помогите пожалуйста составить программу, в которой 1) организовать ввод квадратной матрицы размера nxn из целых чисел; 2) вычислить произведение элементов, которые стоят в... http://www.cyberforum.ru/cpp-beginners/thread765063.html
C++ Не знаю как правильно передать указатель
В общем для начала приложу код ( не пугайтесь , что придется много читать , из этого кода изучить нужно лишь 2 функции и данные структуры ) : #include <iostream> #include <fstream> #include...
C++ Текстовый файл. Открыть, посчитать в нем количество английских и русских букв
У меня есть текстовый фаил с русским и английским текстом, как мне открыть этот фаил в с++ (путь к нему как указывать правильно), и как посчитать в нем количество английских и русских букв?
C++ Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора http://www.cyberforum.ru/cpp-beginners/thread765029.html
Дано вектор В, состоящий из N действительных чисел. Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора. Напечатать заданный и образован вектор.
C++ Дано матрицу A (3,4). Вывести номера столбцов и строк, где находится третий и пятый парные элементы этой матрицы Дано матрицу A (3,4). Вывести номера столбцов и строк, где находится третий и пятый парные элементы этой матрицы Добавлено через 25 минут По сути вот, но нужно немного подправить...Пожалуйста,... подробнее

Показать сообщение отдельно
mzarb
7 / 7 / 1
Регистрация: 14.01.2013
Сообщений: 141

Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту? - C++

18.01.2013, 00:05. Просмотров 1032. Ответов 22
Метки (Все метки)

Это можно :
C++
1
2
3
Array a(10);
a.set(0,5);
Array b(a);
А это нельзя :
C++
1
2
3
Array a(10);
Array b(20);
a = b;
Объясните пожалуйста в чем дело. Если можно, то поподробней, то есть что именно копируется, с каких мест и когда. Я только знаю, что в первом варианте можно так делать, потому что объект ещё не создан, а тонкостей не знаю(.
Вот полный код :
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
class Array {
private:
    size_t mysize;
    int *mydata;
public:
    Array(size_t size);
    void set(int i, int val);
    int get(int i);
};
 
Array::Array(size_t size){
    mysize = size;
    mydata = new int [mysize];
}
 
void Array::set(int i, int val){
    mydata[i] = val;
}
 
int Array::get(int i){
    return mydata[i];
}
 
int main() {
    Array a(10);
    a.set(0,7);
    Array b(a); //Первый вариант
    
    Array a(10);
    Array b(20);
    b=a;        //Второй вариант
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.