Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » tr1::<array> Konstruktor

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.11.2009, 16:36 Uhr
FrEEzE2046



Hallo,

wahrscheinlich ist es ganz einfach:
Wieso kann ich die Template-Klasse array<typename, size_t> mit einer Initialisierungsliste ... initialisieren.

Deklariert ist es folgendermaßen: (MSDN)

C++:
    array();
    array(const array& right);


Und kann dann so verwendet werden:

C++:
typedef std::tr1::array<int, 4> Myarray;
int main()
{
    Myarray c0 = {0, 1, 2, 3};

// display contents " 0 1 2 3"
    for (Myarray::const_iterator it = c0.begin();
        it != c0.end(); ++it)
        std::cout << " " << *it;
    std::cout << std::endl;

    Myarray c1(c0);

// display contents " 0 1 2 3"
    for (Myarray::const_iterator it = c1.begin();
        it != c1.end(); ++it)
        std::cout << " " << *it;
    std::cout << std::endl;

    return (0);
}



Die Konstruktoren sind ja einmal ohne Parameter (Default-Konstruktor) und der andere ist ein Copy-Konstruktor ... verstehe ich gerade nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.11.2009, 18:25 Uhr
Tommix



Hallo,
sieh mal hier
http://msdn.microsoft.com/en-us/library/bb983093.aspx
unter "Remarks".

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.11.2009, 20:21 Uhr
~Prog
Gast


Auch nützlich im Zusammenhang mit TR1 und C++0x sind:

www.open-std.org/JTC1/SC22/WG21/

Speziell:
www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n3000.pdf

Der zweite Link ist dass heute (26.11.09) aktuelle Paper, unter dem ersten Link ist immer das aktuelle zu finden (unter "current draft").

Gruß Prog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.11.2009, 21:19 Uhr
0xdeadbeef
Gott
(Operator)


std::tr1::array ist im Grunde nicht viel mehr als

C++:
template<typename T, std::size_t I>
struct array {
  T elem[I];
};


mit ein paar Funktionen, die dem Array das Interface eines STL-Containers verleihen. TR1 schreibt ausdrücklich vor, dass std::tr1::array die Anforderungen eines Aggregats nach 8.5.1 im ISO-C++-Standard zu erfüllen hat, d.h., keine benutzerdefinierten Konstruktoren oder Destruktoren, keine virtuellen Funktionen, keine privaten Member, keine Basisklassen, damit (ebenfalls nach 8.5.1) eine solche Initialisierung möglich ist.

Wenn der MSVC sich da nicht mit einer Ausnahme rumdrückt, werden die Konstruktoren, die in der MSDN beschrieben sind, implizit sein.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 26.11.2009 um 21:20 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: