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

Ваш аккаунт

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

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

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

__declspec(property...

38K
27 апреля 2009 года
kd0x13
38 / / 26.04.2009
в С++ билдере, да и в дельфях есть такая штука как свойства. Недавно наткнулся на пример использования их в MVC++, пример:
 
Код:
class CMyClass
{
private:
    int Fa;
public:
    void SetA(int vol);
    void GetA(int &vol);
    __declspec(property(get=GetA, put=SetA)) int Fa;
}

вроде правильно написал. но неработает оно. адрес того ресурса непомню. пишу тут. может ктонибудь делал что то аналогичное? поделитесь инфой пожалста.
397
27 апреля 2009 года
SergPas
527 / / 03.02.2007
Вот тут можешь почитать...
 
Код:
__declspec(property(get=GetA, put=SetA)) int Fa;

Вместо Fa выше приведенного кода используйте другое имя, отличное от того, что инкапсулируется...
38K
27 апреля 2009 года
kd0x13
38 / / 26.04.2009
Да, но не в этом проблемма. Тут просто описка получилась.
при таком использованиии этого класса
Код:
class CMyClass
{
private:
    int Fa;
public:
    void SetA(int vol);
    void GetA(int &vol);
    __declspec(property(get=GetA, put=SetA)) int Aa;
};

void CMyClass::SetA(int vol)
{
    Fa = vol;
}

void CMyClass::GetA(int &vol)
{
    vol = Fa;
}

...

CMyClass cmc;
cmc.Aa = 4;
std::cout << cmc.Aa;

возникают ошибки
 
Код:
error C3803: 'int CMyClass::Aa': property has a type which is incompatible with one of its accessors 'void CMyClass::GetA(int &)'

error C2660: 'CMyClass::GetA' : function does not take 0 arguments

fatal error C1903: unable to recover from previous error(s); stopping compilation


может просто я код коряво написал, я недавно только с VCL слез)) Скажите, что нетак?
397
27 апреля 2009 года
SergPas
527 / / 03.02.2007
 
Код:
void CMyClass::GetA(int &vol )
{
    vol = Fa;
}
Может надо так сделать?:
 
Код:
int CMyClass::GetA()
{
    return Fa;
}
Компилится без проблем... :)
38K
27 апреля 2009 года
kd0x13
38 / / 26.04.2009
Вот жеш оно как:) Невнимательность...
Благодарю вас, SergPas:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог