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

Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту? - 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 минут По сути вот, но нужно немного подправить...Пожалуйста,... подробнее

Показать сообщение отдельно
TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
18.01.2013, 00:14
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Потому что как только вы объявляете свой конструктор, стандартная копировалка убирается. Чтобы определить свою, определяйте метод Array& Array::operator=(const Array &other), который и выполнит копирование полей из объекта other в текущий (и вернёт этот же текущий, return *this;).
А у меня и без стандартного работает, в а установили в б получили:
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
#include <iostream>
using namespace std;
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);
    a.set(0,777);
    b=a;        //Второй вариант
    cout << b.get(0);
    cin.get();
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru