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

Область видимости анонимного объекта при вызове функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ STL Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести http://www.cyberforum.ru/cpp-beginners/thread1231849.html
Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести в выходной поток. Добавлено через 20 минут пример, но он с ошибками #include <vector> #include <algorithm> #include <iostream> #include <functional> using namespace std;
C++ STL Заполнить строку латинским алфавитом и вывести ее в выходной поток Заполнить строку латинским алфавитом и вывести ее в выходной поток. С++ Добавлено через 20 минут вот пример выполнения, но в нем ошибки #include <string> #include <iostream> using namespace std; int main() { string s; http://www.cyberforum.ru/cpp-beginners/thread1231848.html
STL Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток C++
Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток. Добавлено через 19 минут пример, но в нем ошибки #include <vector> #include <iostream> #include <iomanip> using namespace std; int main() {
C++ STL Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток
Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток.
C++ Используя STL контейнер set заполнить массив http://www.cyberforum.ru/cpp-beginners/thread1231845.html
Задание 2. Данную задачу решить не используя метод sort, а используя STL контейнер: set. Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по возрастанию и вывести в выходной поток. Добавлено через 16 минут пример решения #include <vector> #include <algorithm> #include <iostream> using namespace std;
C++ Передача ссылки на массив в функцию запутался в 3 соснах... Помахайте плиз) //обьявляю и инициализирую функцию void fShow(char *pNameArray){ for (int i = 0; i < 30; ++i){ for(int k = 0; k < 3; ++k){ cout << pNameArray; подробнее

Показать сообщение отдельно
brick12
0 / 0 / 0
Регистрация: 22.07.2014
Сообщений: 4

Область видимости анонимного объекта при вызове функции - C++

22.07.2014, 09:29. Просмотров 254. Ответов 6
Метки (Все метки)

Доброго дня.
Хотел поинтересоваться: когда уничтожится анонимный объект, переданный как параметр функции?

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
#include <stdio.h>
#include <string>
 
using namespace std;
class Obj{
private:
  string s;
public:
friend 
  Obj(){s("asd"); printf("construct\n");}
  ~Obj(){printf("destroy\n");}
  operator const char * (){ return s.c_str();}
  friend Obj & operator <<(Obj & obj, const char * arg);
};
 
Obj & operator <<(Obj & obj, const char * arg){ s.append(arg); return obj;}
void print(const char * msg){
 printf("here\n");
 
 
}
int main()
{
 print(Obj() << "eh one" << "one one one" << "many many one one one");
 return 0;
}
Собственно у меня получилось
> ./a.out
construct
here
destroy

Я правильно понимаю что объект уничтожается при выходе из функции? Если у кого завалялась ссылка на стандарт по этому поводу - киньте в меня
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru