Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,715
Записей в блоге: 3
10.06.2014, 02:01     Чем может быть чревато создание в классе адреса на другой класс
Вполне нормально говорит Jupiter, мне кажется.
Цитата Сообщение от Nekto Посмотреть сообщение
Для этого придумали умные указатели. std::shared_ptr, думаю, подойдет для данного случая.
С обычными тоже стоит разобраться. Без практики трудно понять.
Divergence, критическое отношение к прочитанному, это хорошая вещь. Однако если материала много, то конформизм не помешает. С чем-то стоит согласиться в надежде потом понять. Иначе потеря времени и сил не соизмеримы с результатом. Это моё личное мнение. Действуйте так как вам удобно. Что касается стандартных конструкций, то они нужны для упрощения того, что можно выразить и без них и тут выбор за вами.
На закуску пример. Я понимаю, что вы не собираетесь так сделать и не для спора пишу:
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
//программа которая не читается другими без боли, хорошо защищена :)
#include <iostream>
using namespace std;
 
struct B{
int i;  
B() {i=1;}
};
 
struct A{
B *b;
A( B *obj){//это конструктор преобразовани и он легко позволяет написать (см. main)...
b = obj;
}
};
 
int main()
{
B *obB;
A obA = obB;//...вот так. Часто ctor преобразования используется именно так))
cout << obA.b->i << endl;//Run-Time Check Failure #3 - The variable 'obB' is being used without being initialized. :)
cout<<endl;
system("pause");
return 0;
}
Удачи!
 
Текущее время: 11:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru