2012-02-03 2 views

ответ

1

Это оператор преобразования. Он позволяет неявно преобразовывать объекты типа CComSafeArray<T> в LPSAFEARRAY.

Пример:

CComSafeArray<int> array(10); 
//Implicitly calls `array.operator LPSAFEARRAY()` to construct a LPSAFEARRAY 
//from `array` 
LPSAFEARRAY underlying_array(array); 
1

Это conversion operator. В конце throw() означает, что функция не будет вызывать никаких исключений.

Пример:

class String 
{ 
public: 
    String(const char * str) 
    : buffer(0) 
    { 
    if ((str != 0) && (str[0] != '\0')) 
    { 
     this->buffer = new char[ strlen(str) + 1 ]; 
     strcpy(this->buffer, str); 
    } 
    }; 
    ~String(void) 
    { 
    if (this->buffer != 0) 
    { 
     delete [] this->buffer; 
     this->buffer = 0; 
    } 
    }; 
    operator const char * (void) { return this->buffer; }; 
private: 
    char * buffer; 
}; 

String one("1"), two("2"); 
if (strcmp(one,two) == 0) 
{ 
    // works fine 
}