Sdílet prostřednictvím


Jednoduché přiřazení (C++)

Jednoduchým operátorem přiřazení (=) způsobí, že hodnoty uložené v objektu určeném prvním operandem druhým operandem.Pokud oba objekty jsou aritmetické typů, pravý operand je převedena na typ vlevo před k uložení hodnoty.

L hodnoty typů, které jsou právě nestálé nebo const ani těkavých při lze přiřadit const a těkavé typů objektů.

Přiřazení objektů typu třídy (struct unie a typy tříd) provádí funkci pojmenovanou operátor =.Výchozí chování této funkce operátor je provedení bitové kopie; však toto chování lze změnit pomocí přetížené operátory.(Viz Přetížené operátory Další informace.)

Objekt třídy base lze přiřadit libovolné jednoznačně odvozené třídy ze základní třídy daný objekt.Naopak není PRAVDA, protože implicitní převod z odvozené třídy na základní třída, ale není ze základní třídy odvozené třídy.Příklad:

// expre_SimpleAssignment.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
class ABase
{
public:
    ABase() { cout << "constructing ABase\n"; }
};

class ADerived : public ABase
{
public:
    ADerived() { cout << "constructing ADerived\n"; }
};

int main()
{
    ABase aBase;
    ADerived aDerived;

    aBase = aDerived; // OK
    aDerived = aBase; // C2679
}

Přiřazení typu odkaz chovat, jako přiřazení byly prováděny na objekt, na který odkaz odkazuje.

Typ třídy objektů se liší od inicializace přiřazení.Ke znázornění různých přiřazení a inicializace být, zvažte kód

UserType1 A;
UserType2 B = A;

Předcházející kód ukazuje inicializátor; volá konstruktor pro UserType2 , která má argument typu UserType1.Uveden kód

UserType1 A;
UserType2 B;

B = A;

přiřazovací příkaz

B = A; 

může mít jeden z následujících efektů:

  • Volání funkce operátor = pro UserType2, pokud operátor = je součástí UserType1 argument.

  • Volání funkce explicitní převod UserType1::operator UserType2, pokud tato funkce existuje.

  • Volání konstruktoru UserType2::UserType2, pokud existuje taková konstruktor, který trvá UserType1 argument a zkopíruje výsledek.

Viz také

Referenční dokumentace

Výrazy s binární operátory