Возвращение указателя класса через функцию - PullRequest
4 голосов
/ 14 ноября 2010

Как я могу вернуть указатель класса Foo, используя его функции. Причина, по которой я спрашиваю, заключается в том, что я хочу, чтобы этот код работал

Class fo
fo.MakeA(34.5777).MakeY(73.8843);

Большое спасибо заранее

Ответы [ 2 ]

6 голосов
/ 14 ноября 2010

Предполагается, что вам нужен ссылочный тип возврата;

class foo {
public:
  foo& MakeA(float a) {
    // MakeA code logic here...
    return *this;
  } 
  foo& MakeB(float b) {
    // MakeA code logic here...
    return *this;
  } 
}

В противном случае вы можете просто вернуть копию (foo вместо foo&).

2 голосов
/ 14 ноября 2010

Вы хотите использовать индексатор для вашего класса.

Сделайте тип возврата для (MakeA, MakeY) того же типа данных, что и класс (с ref &).

и в конце каждого метода ставим

return *this;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...