Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Возвращение объекта из функции

278
18 июня 2011 года
Alexander92
1.1K / / 04.08.2008
Всем здравствуйте.
Возник следующий вопрос. К примеру, есть код:

Код:
class B {
public:
  B() {};
  ~B() {};

  // ....
};

class A {
public:
  A() {};
  ~A() {};

  A getB() {
    return this->b;
  }

private:
 B b;
};


Через какие регистры вернется значение из A::getB()? Для примера: если есть функция вида
 
Код:
int func() {
  return 5;
}
, то после завершения ее работы регистр eax будет содержать число 5 (по крайней мере, в VC++). Существуют ли какие-то общие правила возвращения объектов и где об этом можно нормально почитать?
260
18 июня 2011 года
Ramon
1.1K / / 16.08.2003
Calling Conventions.

PS: Как вы можете догадаться непосредственно объект не вернется ни через какие регистры если его размер превышает "вместимость" регистра.
278
18 июня 2011 года
Alexander92
1.1K / / 04.08.2008
Цитата: Ramon
Calling Conventions.

PS: Как вы можете догадаться непосредственно объект не вернется ни через какие регистры если его размер превышает "вместимость" регистра.


Разумеется, здесь никаких вопросов нет.
Насколько я уже увидел, для соглашения __thiscall возвращается просто указатель на объект через тот же eax.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог