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

Ваш аккаунт

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

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

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

Ссылка как элемент класса

8.1K
08 марта 2007 года
Нео
48 / / 30.07.2006
есть член класса
std::vector<double> parameter;
Нужен член double& delta=parameter[0], т.е., при обращении к delta нужно, чтобы компиллятор обращался к parameter[0];
Как это сделать?
355
09 марта 2007 года
&lt;SCORP&gt;
786 / / 21.10.2006
не проверял, но должно работать что-то типа
 
Код:
CMyClass
{
  ....
  double &delta;
}

CMyClass::CMyClass() : delta(parameter[0])
{
  ...
}
309
09 марта 2007 года
el scorpio
1.1K / / 19.09.2006
Для Borland C++ Builder используем "свойства"

Код:
TMyClass
{
private:
  double *fArray;
  double& __fastcall UseFirst (void)
     {return *fArray;}
public:
  __property double First = {read = UseFirst};
}
///

TMyClass Obj;
Obj.First = 0;

Естественно, массив fArray создаётся в конструкторе
240
09 марта 2007 года
aks
2.5K / / 14.07.2006
el scorpio, что то вобще не в тему )
8.2K
09 марта 2007 года
Akela
64 / / 13.05.2005
Все правильно, нужно использовать свойства (работает и в Borland и в Microsoft):
Код:
class TClass
{
std::vector<double> parameter;
public:

__declspec(property(get = GetDelta)) double delta;

double GetDelta(void)
{
return parameter[0];
}
};

Теперь при обращении вида:
TClass A;
double d = A.delta;
в d запишется значение parameter[0].
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог