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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Helldrg
-15 / 55 / 1
Регистрация: 10.01.2011
Сообщений: 1,100
#1

Как передать адрес объекта через функцию - C++

14.07.2015, 07:40. Просмотров 383. Ответов 6
Метки нет (Все метки)

Здравствуйте! Надеюсь я правильно сформулировал вопрос, хотелось бы узнать как такое реализовать:

C++
1
2
3
4
5
6
7
8
9
10
//Есть функция с таким типом параметра ID3D11Buffer* const* ppObjectName
// Если писать так, то работает
Fun(&obj);
// А если писать так, то не не работает
Fun(&GetObj());
....
ID3D11Buffer* GetObj()
{
  return obj;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2015, 07:40     Как передать адрес объекта через функцию
Посмотрите здесь:

Доступ к приватному полю через адрес экземпляра объекта - C++
Объясните такой момент class A { private: char s; public: char Get(){ return s; }

Передать строку через функцию. - C++
#pragma once class User { private: char *Surname; public: User(void); char SurnameReturn(); }

Как получить полный адрес по имени поля объекта класса - C++
как получить полный адрес по имени поля объекта класса ? не пересчитывая размер расположенных до него полей от начала объекта

Не получается адрес динамического двумерного массива передать, как аргумент функции - C++
/* Лабораторная работа №3 Во всех вариантах необходимо написать три функции, которые будут вызываться из функции main(). Первая...

Можно ли передать в функцию две переменных через 1 какую-нибудь конструкцию? - C++
Можно ли передать в функцию две переменных через 1 конструкцию чтобы вместо этого int a=5; int b=10; Func (a,b); ...

Передать функцию как параметр - C++
По сути, нужно отсортировать созданный массив, то есть передаваемой функцией будет функция сортировки. Подскажите как это реализовать. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Black Fregat
1381 / 1011 / 222
Регистрация: 31.05.2009
Сообщений: 4,240
14.07.2015, 08:03     Как передать адрес объекта через функцию #2
Через временную переменную
C++
1
2
ID3D11Buffer* temp = GetObj();
Fun(&temp);
Helldrg
-15 / 55 / 1
Регистрация: 10.01.2011
Сообщений: 1,100
14.07.2015, 08:09  [ТС]     Как передать адрес объекта через функцию #3
Black Fregat
А через функцию, которая возвращает указатель на объект, нельзя?
Pancir
57 / 44 / 10
Регистрация: 16.09.2014
Сообщений: 124
14.07.2015, 08:26     Как передать адрес объекта через функцию #4
C++
1
Fun(GetObj());
mporro
256 / 102 / 14
Регистрация: 04.07.2014
Сообщений: 571
14.07.2015, 08:59     Как передать адрес объекта через функцию #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Helldrg, дело в том, что функция GetObj() возвращает Вам временный объект ID3D11Buffer*, который будет уничтожен при завершении работы функции. Компилятор разумно ограничивает возможные действия над таким объектом. В частности, брать от такого объекта адрес бессмысленно, потому что практически моментально указатель окажется висячим. Фактически, всё, что Вы можете сделать с объектом, который возвращает функция -- скопировать во внешний по отношению к функции контекст. В данном случае -- скопировать указатель ID3D11Buffer*. И уже от копии, которая будет жить долго, Вы можете взять адрес.
Pancir
57 / 44 / 10
Регистрация: 16.09.2014
Сообщений: 124
14.07.2015, 09:13     Как передать адрес объекта через функцию #6
Блин, сори мой ответ не верный, я не заметил, что в комментарии дан тип аргумента и решил с играть в Вангу и проиграл )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2015, 09:14     Как передать адрес объекта через функцию
Еще ссылки по теме:

Как в функцию передать координаты - C++
Есть функция: void enemy() { SetConsoleCursorPosition(console,coord1); cout << ' ' << flush;//Стираем if(dir1 == LEFT) ...

Как передать параметр в функцию? - C++
#include "stdafx.h" #include <iostream> using namespace std; void test(int); int main() { int n = 1; for (int i = 0; i <...

Как передать массив в функцию? - C++
Вот код #include<iostream> #include<ctime> #include <cstdlib> #include <iomanip> using namespace std; int F(int a,int* nn){ ...

Как передать вектор в функцию? - C++
Какими способами можно передать вектор в функцию? Например есть функция void asd() { for(vector<Temp>::iterator i = temp.begin();...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Helldrg
-15 / 55 / 1
Регистрация: 10.01.2011
Сообщений: 1,100
14.07.2015, 09:14  [ТС]     Как передать адрес объекта через функцию #7
mporro
Ваууу, доступно объяснили, спасибо!!!

Добавлено через 25 секунд
Pancir
бывает =)
Yandex
Объявления
14.07.2015, 09:14     Как передать адрес объекта через функцию
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru