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

Как обмануть указатель? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в программе, читающей файлы http://www.cyberforum.ru/cpp-beginners/thread927463.html
Пишу программу, которая принимает произвольное количество файлов с записями на вход и в конечном счете выводит эти записи отсортированные в последний принятый файл. Естественно, у меня ничерта не работает и я отлаживаю программу кусками (так что позже, скорей всего, задам не один вопрос по ней же). Вот в этом куске я пытаюсь понять почему не удается нормально записать содержимое файла в...
C++ Оператор присваивания Добрый день! Помогите, пожалуйста, разобраться. Я не совсем понимаю работу перегруженного оператора присваивания в классе String, который содержит переменные-члены: указатель char *itsString и переменную unsigned short itsLen (длина строки): String& String::operator=(const String & rhs) { if (this == &rhs) return *this; delete itsString; itsLen=rhs.GetLen(); ... http://www.cyberforum.ru/cpp-beginners/thread927461.html
Написать функцию, определяющую пересекаются ли два отрезка C++
На вход подаются координаты начал и концов двух отрезков. Нужно определить пересекаются ли они. Добавлено через 21 минуту Или хотя бы объяснить, как это написать
Отладка консольного приложения C++
в отладчике OllyDbg открыл оконный проект из Делфи, вся информация, код отображаются нормально. Таким же способом открыл обычную консольную программу, просто запустилась прога, а кода и никакой информации нету. Почему, что не так?
C++ Определить, сколько раз встречается число 5 среди элементов всей матрицы http://www.cyberforum.ru/cpp-beginners/thread927433.html
Определить, сколько раз встречается число 5 среди элементов всей матрицы.
C++ Аргументы для функции main() Я совершенно не понял, каким образом работает, допустим вот такой фрагмент программы: int main(int argc, char **argv) { if (argc>1) { int i; for (i=1; i<argc; ++i) cout<<argv<<' '; cout<<argv; } подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
23.07.2013, 11:56     Как обмануть указатель?
Если alien_function - это некая данность, то она уже существует и независимо от чьих-либо желаний либо изменяет аргумент, либо не изменяет, и ничего с этим не поделать. Учитывая, что она принимает указатель - скорее всего изменяет. Что до my_function, то она должна принимать ссылку на переменную:
C++
1
Alien_class my_function(Alien_class& x)
или даже
C++
1
void my_function(Alien_class& x)
, если её действие сводится только к манипуляциям с изменяемым объектом и не требует создания ещё одного объекта Alien_class.

Добавлено через 3 минуты
Ну и вдогонку очевидная мысль, но на всякий случай изображу из себя капитана: если мы хотим результаты работы alien_function, но не хотим, чтобы она изменяла какой-то наш драгоценный объект, можно делать копию этого объекта (если позволяет интерфейс Alien_class) и скармливать функции:
C++
1
2
Alien_class value2(obj.value);
alien_function(&value2);
 
Текущее время: 12:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru