Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Считать из файла и записать массив вопрос в комментарии, подскажите пожалуйста #include <iostream> using namespace std; struct book { string name; int year; string author; int id; } https://www.cyberforum.ru/ cpp-beginners/ thread1096194.html Определить каких положительных чисел больше в последовательности, кратных или не кратных 5? C++
С клавиатуры вводится последовательность чисел.Количество чисел заранее не известно,но может быть очень большим.Числа последовательности находятся от -120 до 100.Определить каких положительных чисел больше,кратных или не кратных 5?
C++ Сравнить длину эллипса и окружности https://www.cyberforum.ru/ cpp-beginners/ thread1096181.html
Здраствуйте, помогите пожалуйста, должно быть два класса эллипс - базовый, окружность - клас-наследник, необходимо сравнить длину даных фигур. #include <iostream> #include <locale> #include <cmath> #define M_PI 3.1415926535897932384626433832795 using namespace std; class Elips { private:
C++ Чапаеву нужно переплыть реку С++ https://www.cyberforum.ru/ cpp-beginners/ thread1096177.html
Чапаеву нужно переплыть реку Урал шириной B метров.Его скорость в стоячей воде V1 м,скорость реки V2.Под каким углом ему надо плыть,чтобы "не снесло",и сколько времени займет переправа?
C++ Сформировать двунаправленный список. Удалить из него Элементы, с одинаковыми ключевыми полями
Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить из него Элементы, с одинаковыми ключевыми полями. Добавить элемент после элемента с заданным ключевым полем. Объясните что такое двунаправленный список, и ключевые поля? А то даже не представляю с чего начать и чего от меня хочет условие.
C++ Исчезает окно консоли по завершению работы программы https://www.cyberforum.ru/ cpp-beginners/ thread1096169.html
Исчезает окно консоля....исправьте, пожалуйста, чтобы окно не пропадало #include "stdafx.h" #include <iostream> #include <cstdlib> #include <cmath> using namespace std; //Функция ввода матрицы void vvod(float a, int n)
C++ Строку с методом подчеркивает и говорит о том, что не переданы аргументы. Как их передать в метод? метод таков: void Fraction :: Control(int &denominator, int &numerator) { if (denominator == 0) {cout << "error!try again!"<<endl;} if (numerator % denominator != 0) {cout << "error!try again!"<<endl;} Код из главной функции cout << "1-я дробь" << endl; x.setFraction(); x.Control(); https://www.cyberforum.ru/ cpp-beginners/ thread1096166.html C++ Составьте блок схему пожалуйста кому не трудно
очень надо , просто я не понял эту тему болел , а надо сдавать
C++ Найти наибольший элемент массива и указать сколько раз он встречается в массиве https://www.cyberforum.ru/ cpp-beginners/ thread1096125.html
Помогите подсчитать количество наибольшиго элемента массива. Наибольший массив элемента я нашел, а вот подсчитать количество наибольшего элемента не получается. namespace ConsoleApplication1 { class Program { static void Main(string args) { int mas = new int ;
C++ Пожалуйста составьте блок схему https://www.cyberforum.ru/ cpp-beginners/ thread1096123.html
пожалуйста кому не трудно в вложении
C++ Как передать одномерный массив в функцию?
как передать одномерный массив в функцию?
C++ Реализовать базу данных https://www.cyberforum.ru/ cpp-beginners/ thread1096097.html
Помогите решить задачу: Основываясь на этой структуре: struct clientData //клиент { int accNum; //номер счёта char Sur; //фамилия char Name; //Имя float balance; //Баланс (сумма на счету, или долг) };
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
0

Перегрузка оператора присваивания - C++ - Ответ 5778740

13.02.2014, 22:07. Показов 975. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Задание простое: по заданному классу составить простую программу с использованием динамической памяти.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Cow
{
    char name[20];
    char* chobby;
    double weight;
public:
    Cow();
    Cow(const char* nm, const char* ho, double wt);
    Cow(const Cow & c);
    ~Cow();
    Cow & operator=(const Cow & c);
    void ShowCow() const;
};
1 файл:
Кликните здесь для просмотра всего текста
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
#include "h.h"
 
Cow::Cow()
{
    cout << "Вызван конструктор" << endl;
    chobby = NULL;
    weight = 0;
}
 
Cow::Cow(const char* nm, const char* ho, double wt)
{
    cout << "Вызван конструктор" << endl;
    strncpy(name,nm,20);
    chobby = new char[strlen(ho)+1];
    strcpy(chobby,ho);
    weight = wt;
}
 
Cow::Cow(const Cow & c)
{
    cout << "Вызван конструктор" << endl;
    strncpy(name,c.name,20);
    chobby = new char[strlen(c.chobby)+1];
    strcpy(chobby,c.chobby);
    weight = c.weight;
}
 
Cow::~Cow()
{
    cout << "Вызван деструктор:" << endl;
    delete [] chobby;
}
 
Cow & Cow::operator=(const Cow & c)
{
    cout << "Вызвана операция присваивания" << endl;
    if (&c == this)
        return *this;
    delete [] chobby;
    strncpy(name,c.name,20);
    chobby = new char[strlen(c.chobby)+1];
    strcpy(chobby,c.chobby);
    return *this;
}
 
void Cow::ShowCow() const
{
    cout << "name: " << name << endl;
    cout << "chobby: " << chobby << endl;
    cout << "weight: " << weight << endl;
}

2 файл:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <Windows.h>
#include "h.h"
 
using namespace std;
 
#define rus setlocale(0,"rus");SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
int main()
{
    rus;
    cout << "Obj1:\n";
    Cow* Obj1 = new Cow;
    cout << "Obj2:\n";
    Cow* Obj2 = new Cow("ABC","DEF",582.1);
    cout << "Obj3:\n";
    Cow* Obj3 = new Cow(*Obj2);
    cout << "Obj4:\n";
    Cow* Obj4 = Obj1;
 
    Obj1->ShowCow();
    Obj2->ShowCow();
    Obj3->ShowCow();
    Obj4->ShowCow();
 
    Obj1->~Cow();
    Obj2->~Cow();
    Obj3->~Cow();
    Obj4->~Cow();
}


Объясните пожалуйста, в чем ошибка, на вызове Cow* Obj4 = Obj1; вылетает с необработанным исключением. Загвоздка где то в операции присваивания.

Вот, что пишет после прогона:

C++
1
2
3
4
5
6
7
8
9
Obj1:
Вызван конструктор
Obj2:
Вызван конструктор
Obj3:
Вызван конструктор
Obj4:
name: НННННННННННННННННННН
chobby:


Вернуться к обсуждению:
Перегрузка оператора присваивания C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2014, 22:07
Готовые ответы и решения:

Перегрузка оператора присваивания
Приветствую всех. Не могли бы подсказать как переопределить оператор присваивания. То что искал,...

Перегрузка оператора присваивания
struct pointer_command { public: void * x; public: void set(void * y){x = y; } void...

Перегрузка оператора присваивания
мне надо было реализовать конструкторы, деструктор, оператор присваивания, функции ввода /...

Перегрузка оператора присваивания
Здравствуйте, недавно читал про перегрузку операторов и решил поупражняться с этим, однако на...

2
13.02.2014, 22:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2014, 22:07
Помогаю со студенческими работами здесь

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

Перегрузка оператора присваивания
Всем привет! По заданию программа должна содержать перегруженную операцию «=», использование...

Перегрузка оператора присваивания
Доброго времени суток! Возник вопрос по поводу перегрузки оператора присваивания. Пример...

Перегрузка оператора присваивания
Вот есть такой класс template&lt;typename TT&gt; class Matrix { public:...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru