Inicializace pole v konstruktoru – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Inicializace pole v konstruktoru – C / C++ – Fórum – Programujte.comInicializace pole v konstruktoru – C / C++ – Fórum – Programujte.com

 

kadet
~ Anonymní uživatel
23 příspěvků
21. 2. 2010   #1
-
0
-

Chci se zeptat jestli se da nejak inicializovat více prvků pole najednou v konstruktoru, nebo se to musí po jednom promenna[0] = něco , promenna[1] = něco atd.



class A
{
public:
A()
{
promenna = {0, 1, 2, 3, 6, 4, 7, 8, 10, 11, 12};
}

private:
int promenna[11];
};

Nahlásit jako SPAM
IP: 88.146.143.–
liborb
~ Redaktor
+18
Guru
22. 2. 2010   #2
-
0
-

Jestli se nepletu, tak jednoduše to nejde. Můžeš si například vytvořít statické pole s inicializací a v konstruktoru provést jenom překopírování obsahu jednoho pole do druhého.

Nahlásit jako SPAM
IP: 85.207.166.–
kadet
~ Anonymní uživatel
23 příspěvků
22. 2. 2010   #3
-
0
-

díky za odpověď, to jsem potřeboval vědět :)

Nahlásit jako SPAM
IP: 88.146.143.–
Lordest0
Super člen
22. 2. 2010   #4
-
0
-

ale ide, treba si to iba vyskusat ;)
v pohode skompiluje:

#include <iostream>


using namespace std;

class A
{
public:
A()
{
promenna = {0, 4, 2, 3, 6, 4, 7, 8, 10, 11, 12};
}

int * vrat() { return this->promenna; }

private:
int promenna[11];
};

int main()
{
A a;
cout << "Hello world!" << endl;

int * pole = a.vrat();

cout << "Skuska 1: " << pole[1]; // Skuska 1: 4
return 0;
}

(pisane narychlo)

dufam ze som ta dobre pochopil :D

Nahlásit jako SPAM
IP: 85.216.242.–
m->29+6
Super člen
23. 2. 2010   #5
-
0
-

No neviem, mne ten tvoj príklad nefunguje a podľa mňa by ani nemal.

Nahlásit jako SPAM
IP: 147.229.208.–
Lordest0
Super člen
23. 2. 2010   #6
-
0
-

To m->29 :
Mne to v pohode funguje, skusal som to viac krat. A je to cele, nieje to iba jedna cast.

IDE: CB (CodeBlocks)
Kompilátor: GNU GCC Compiler

Nevravim, ze to je absolutne spravne (pisane narychlo), je to iba priklad.

Nahlásit jako SPAM
IP: 85.216.242.–
m->29+6
Super člen
23. 2. 2010   #7
-
0
-
Nahlásit jako SPAM
IP: 147.229.208.–
Lordest0
Super člen
23. 2. 2010   #8
-
0
-

To m->29 : tak toto je fakt zvlastne, tiez som zacal nedavno ( pred par mesiacmi ) ale pravdepodobne to bude kompilatorom alebo operacnym systemom(?).

http://i47.tinypic.com/2aj6sfm.png

Neviem, mozno by sme mali pockat na vacsich odbornikov :)
Aky kompilator pouzivas?

Nahlásit jako SPAM
IP: 85.216.242.–
liborb
~ Redaktor
+18
Guru
24. 2. 2010   #9
-
0
-

Je vidět, že to záleží na kompilátoru. Podle mě to nemá funguvat, protože pak by mělo fungovat třeba i toto:



char szTemp[32];

szTemp = "test";


A to, že ti to funguje, tě paradoxně může dostat do problémů při přechodu na jiný kompilátor ...

Nahlásit jako SPAM
IP: 85.207.166.–
kadet
~ Anonymní uživatel
23 příspěvků
27. 2. 2010   #10
-
0
-

jen pro doplnění já jsem to původně zkoušel kompilovat v ms visual studiu 2008 c++ express a nefungovalo to, stejná hláška kompileru jako m->29

Nahlásit jako SPAM
IP: 88.146.143.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý