Форум программистов, компьютерный форум 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нижнюю границу диапозона и верхнюю границу диапозона\n"); if ((scanf("%d\n%d\n%d\n%d",&n,&m,&e,&f) == 4) && (n>0) && (m>0)) {
C++ Вычислить произведение элементов в столбцах с нечетным номером; удалить второй элемент первой строки Рябят выручайте!!! Помогите пожалуйста составить программу, в которой 1) организовать ввод квадратной матрицы размера nxn из целых чисел; 2) вычислить произведение элементов, которые стоят в столбцах с нечетным номером; 3) удалить второй элемент первой строки и вставить заданное число в начало этой же строки; 4) организовать ввод и вывод матрицы в виде отдельных функций. http://www.cyberforum.ru/cpp-beginners/thread765063.html
C++ Не знаю как правильно передать указатель
В общем для начала приложу код ( не пугайтесь , что придется много читать , из этого кода изучить нужно лишь 2 функции и данные структуры ) : #include <iostream> #include <fstream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <bitset> #include <set> #include <map> #include <vector>
C++ Текстовый файл. Открыть, посчитать в нем количество английских и русских букв
У меня есть текстовый фаил с русским и английским текстом, как мне открыть этот фаил в с++ (путь к нему как указывать правильно), и как посчитать в нем количество английских и русских букв?
C++ Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора http://www.cyberforum.ru/cpp-beginners/thread765029.html
Дано вектор В, состоящий из N действительных чисел. Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора. Напечатать заданный и образован вектор.
C++ Дано матрицу A (3,4). Вывести номера столбцов и строк, где находится третий и пятый парные элементы этой матрицы Дано матрицу A (3,4). Вывести номера столбцов и строк, где находится третий и пятый парные элементы этой матрицы Добавлено через 25 минут По сути вот, но нужно немного подправить...Пожалуйста, если можете, помогите побыстрее :С #include <iostream> #include <conio.h> #include <stdlib.h> #include <time.h> #include <iomanip> #include <math.h> подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
18.01.2013, 19:02     Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту?
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Потому что как только вы объявляете свой конструктор, стандартная копировалка убирается.
Убирается лишь конструктор по-умолчанию при явном указании хотя бы одного. Иначе данный код не компилился бы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
    public :
        A(){}
};
 
int main()
{
    A a;
    A b = a;
    A c(a);
}
Но определить оператор присваиваний и конструктор копий все же стоит явно т.к.
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
идет работа с памятью и mydata у них общий. Умрёт один объект и отберёт у второго данные.
и память попытается освободиться дважды, что понесет крах во время выполнения.
 
Текущее время: 11:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru