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

Дружественная перегрузка оператора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамический глобальный объект. http://www.cyberforum.ru/cpp-beginners/thread342044.html
Здравствуйте. Пишу Auto-Clicker . Текущая версия содержит заранее созданный массив объектов класса "TClickBase" в каждом объекте хранятся координаты экрана, интервал нажатия и прочие процедуры и ф-ии. Так как это очень затратно для памяти компьютера да и вообще небрежно на мой взгляд , Я решил изменить программу сделав в ней динамическое создание объектов. Пишу на C++ Builder 6. Вот...
C++ C: проблема с использованием сторонней библиотеки Всем привет! Помогите решить проблему. Нужно использовать стороннюю библиотеку VSPE API (эмулятор COM-порта). Свою софтину пишу на Си. В комплекте с самой либой есть хидер VSPE_API.h. Делаю точно как написано в примере использования этой либы http://www.eterlogic.com/help/vspe/VSPE_API_Cpp_Page.html В своём коде: #include "VSPE_API.h" #pragma comment(lib,"VSPE_API.lib") Кусок содержимого... http://www.cyberforum.ru/cpp-beginners/thread341979.html
Работа с длинными числами C++
Мне нужно прочитать из файла 22-х значные целые числа для количественного сравнения. int и long int не сохраняют полную длину числа. Какой тип можно использовать?
C++ pdf reader своими руками
Прошу помощи. Нужна любая информация, которая поможет написать простейший pdf reader на C++, примеры, советы, что угодно, что может помочь.
C++ Игра Жизнь http://www.cyberforum.ru/cpp-beginners/thread341953.html
Написал вот такую реализацию: #include "stdafx.h" #include "iostream" #include "clocale" using namespace std; int ZeroGenerationX={1,2,3,4,5,6,7,8,9,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,1,2,3,4,5,6,7,8,9}; int ZeroGenerationY={1,0,1,1,1,0,1,1,1,-1,-1,-2,-1,-2,-1,-2,-1,-1,2,3,2,3,3,2,3,2,2}; int neighbour, CurrentPopulationSize, TempPopulationSize, NewPopulationSize=1;
C++ Копирование файлов Народ, дайте пожалуйста исходник копирования файлов по принципу "открыть файл1 -> считать в буфер содержимое -> открыть файл2 -> заменить содержимое -> сохранить файл2" очень нужно. зашиваюсь подробнее

Показать сообщение отдельно
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
15.08.2011, 14:03     Дружественная перегрузка оператора
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
Ваш код откомпилировал(без 36'ой строки), он работает не пойму почему, похоже я ошибся. Хотя... компилятор выдает предупреждения:
warning C4172: returning address of local variable or temporary
warning C4172: returning address of local variable or temporary
потому что фактически объект не уничтожается, просто указатель стека сдвигается и память, где находится объект, считается свободной. Т.е. если туда не успеть ни чего записать, то можно прочитать значение, которое там было (есть). Но надеяться на это конечно же не стоит.
А вообще компилятор С++ в данном случае мог и не создавать объект в стеке, но раз есть предупреждение, значит все так создал

Добавлено через 8 минут
Вот такой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void f(int *(&p)){
    int a=10;
    p=&a;
}
 
void ff(){
    int a[10];
}
 
int main(){
    int *ptr;
    f(ptr);
    //ff();
    std::cout<<*ptr<<std::endl;
    return 0;
}
поскольку после вызова ф-ции f() со стеком больше ни чего не происходило, то выводится значение a, т.е. 10. Но стоит раскоментировать вызов ff(), и уже будет выведенно другое значение (мусор), т.к. ф-ция ff() создает в стеке массив из 10 элементов, который затирает собой значение, некогда принадлежащее переменной a в ф-ции f().
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru