Форум программистов, компьютерный форум 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
7 / 7 / 0
Регистрация: 19.06.2013
Сообщений: 174

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

09.06.2014, 02:15. Просмотров 607. Ответов 20
Метки (Все метки)

Всем привет!
Я решил не заморачиваться с наследованием, так как у меня каждый класс использует только свои узкоспециализированные функции. А вот некоторые данные из класса все равно таскать приходится.
Таким образом, у меня возникла вот такая, можно сказать, иерархия:

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
class Object //Хранит в себе всю информацию о любом объекте
{
public:
float o1;
float o2;
float o3;
Object() //Конструктор
{
o1 = 1;
o2 = 2;
o3 = 3;
}
~Object(){} //Деструктор
void ObjectFunc1(){} //Функция 1
void ObjectFunc2(){} //Функция 2
};
 
class Paint //Клас Paint не наследует класс Object, тем не менее имеет внутри себя один экземпляр класса Object
{
public:
Object* MyObject; //Адрес экземпляра класса Object
Paint(Object* fObject) //Конструктор
{
MyObject = fObject; //Копирование в переменную класса Paint адреса уже существующего экземпляра Object
}
~Paint(){} //Деструктор
void PaintFunc1(){} //Функции-члены Paint
void PaintFunc2(){} 
};
 
void WinMain()
{
Object *MyObject = new Object;
Paint   *MyPaint   = new Paint(MyObject);
 
//Используем Paint как хотим
 
delete Object;
delete Paint1;
}
Вот так у меня это реализовано.
Вопрос в том, есть ли в такой реализации подводные камни, если есть, то какие??
Буду благодарен за любые предупреждения и мысли по этому поводу.
Лично мне кажется, что никакой опасности нет, тем не менее чутье ноет о том, что здесь не совсем все так просто как кажется...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru