Aracılığıyla paylaş


Dönüþtürme iþleci:)

Bir tür belirtimi olarak int'e dönüştürülme işleminin belirli bir durumda bir nesne türü için bir yöntem sağlar.

unary-expression
( type-name ) cast-expression

Notlar

Tüm tekli ifade bir atama ifadesi olarak kabul edilir.

Derleyici işler atama ifadesi türü türü adı türü cast sonuçlandıktan sonra. Yayınları için ya da başka bir skalar türü skalar herhangi bir türdeki nesnelerin dönüştürmek için kullanılabilir. Açık tür yayınları örtük dönüştürmeler etkilerini belirleyen aynı kurallar zorlanır. Yayınları üzerinde ek sınırları gerçek boyutları veya belirli türleri temsilini neden olabilir.

Örnek

// expre_CastOperator.cpp
// compile with: /EHsc
// Demonstrate cast operator
#include <iostream>

using namespace std;

int main()
{
    double x = 3.1;
    int i;
    cout << "x = " << x << endl;
    i = (int)x;   // assign i the integer part of x
    cout << "i = " << i << endl;
}

// expre_CastOperator2.cpp
// The following sample shows how to define and use a cast operator. 
#include <string.h>
#include <stdio.h>

class CountedAnsiString
{
public:
    // Assume source is not null terminated
    CountedAnsiString(const char *pStr, size_t nSize) :
                      m_nSize(nSize)
    {
        m_pStr = new char[sizeOfBuffer];

        strncpy_s(m_pStr, sizeOfBuffer, pStr, m_nSize);
        memset(&m_pStr[m_nSize], '!', 9); // for demonstration purposes.
    }

    // Various string-like methods...

    const char *GetRawBytes() const
    {
        return(m_pStr);
    }

    // 
    // operator to cast to a const char *
    // 
    operator const char *()
    {
        m_pStr[m_nSize] = '\0';
        return(m_pStr);
    }

    enum
    {
        sizeOfBuffer = 20
    } size;

private:
    char *m_pStr;
    const size_t m_nSize;
};

int main()
{
    const char *kStr = "Excitinggg";
    CountedAnsiString myStr(kStr, 8);

    const char *pRaw = myStr.GetRawBytes();
    printf_s("RawBytes truncated to 10 chars:   %.10s\n", pRaw);

    const char *pCast = myStr; // or (const char *)myStr;
    printf_s("Casted Bytes:   %s\n", pCast);

    puts("Note that the cast changed the raw internal string");
    printf_s("Raw Bytes after cast:   %s\n", pRaw);
}
      

Ayrıca bkz.

Başvuru

Tekli operatörler ifadelerle

C++ işleçleri

Operatör önceliği ve ilişkilendirilebilirlik

Açık tür dönüştürme işleci:)

Atama operatörleri

Kavramlar

Atama operatörleri