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

Чем может быть чревато создание в классе адреса на другой класс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не получается сделать переполнение буфера http://www.cyberforum.ru/cpp-beginners/thread1203206.html
Всем привет! Нужно сделать переполнение буфера и подменить адрес функции на другой. Если делаю так: void overflow(char *ptr) { char buffer; strcpy(buffer, ptr); }
C++ Помогите исправить программу решения системы уравнений Выводит неопределенность # include <stdio.h> #include <iostream> # include <math.h> #include <conio.h> #include <locale.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1203179.html
Объясните код C++
Задача Улитка. Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползёт до вершины шеста? Программа получает на вход натуральные числа h, a, b и должна вывести одно натуральное число. Гарантируется, что a>b. При решении этой задачи нельзя пользоваться условной инструкцией if и циклами. int...
C++ Программа, которая будет работать с персональными данными 5 сотрудников малого предприятия
Добрый вечер! Я изучать С++ начал, дошел до массивов и попалась задача вот такого содержания: "Программа, которая будет работать с персональными данными 5 сотрудников малого предприятия. Программа должна для каждого сотрудника хранить следующую информацию: • Фамилия • Имя • Отчество • Пол • Год рождения • Должность • Заработная плата
C++ Сортировка слиянием: подсчитать количество перестановок http://www.cyberforum.ru/cpp-beginners/thread1203144.html
Привет всем. Дана задача: подсчитать количество перестановок при сортировке массива. Нужен быстрый алгоритм, желательно алгоритм сортировки слиянием. Вот код: #include <stdio.h> #include <conio.h> void Merge(int *A, int first, int last) { int middle, start, final, j; int *mas=new int; middle = (first + last) / 2; start = first;
C++ Вставка элемента в массив после последнего положительного Нужно сделать программу, которая бы вставляла после последнего положительного элемента массива заданное значение, в противном случае вывести "ошибку". Что-то не получается. Посмотрите и подскажите, где ошибка? #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <time.h> void main () { int mas, i, a, b; cout<<"Vvedite chislo: "; cin >>a; подробнее

Показать сообщение отдельно
Divergence
 Аватар для Divergence
7 / 7 / 0
Регистрация: 19.06.2013
Сообщений: 174
09.06.2014, 23:53  [ТС]     Чем может быть чревато создание в классе адреса на другой класс
Цитата Сообщение от Nekto Посмотреть сообщение
С подключением к интернету. ТС = топикстартер.

Цитата Сообщение от Divergence Посмотреть сообщение
Надо жесткой хваткой взять его и сказать: "что же ты делаешь! Так нельзя.Потому что: раз, два и три
Пока что я увидел опасность только в кодере, который может ошибиться. Другие аргументы меня не убедили.
Как я понял, народ настаивает на создании еще одного пустого конструктора?
А вот зачем сюда нужна перегрузка операторов - вот совсем не понял.

Добавлено через 13 минут
Цитата Сообщение от Divergence Посмотреть сообщение
Зачем тогда создавать объект снаружи и передавать указатель на него? Почему бы не создать его внутри?
Вы были абсолютно правы. Я сейчас собрал простенький проект с тестовыми классами (чтобы не морочиться с большим кол-вом кода). Если ссылку на один и тот же класс используют два класса (а у меня именно такая ситуация и назревала), то деструктор выкидывает в ошибку, так как я пытаюсь удалить пустоту.
Вот и ответ на мой вопрос... нельзя передавать в класс просто ссылки на классы (особенно если они инициализированы в динамической памяти). Нужно работать с объектами других классов только внутри самого класса.
 
Текущее время: 09:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru