• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Lista w nagłówku Buildera C++

VPS Starter Arubacloud
0 głosów
158 wizyt
pytanie zadane 26 stycznia 2016 w C i C++ przez igort Nowicjusz (160 p.)

Nie wiem jak dodać listę w nagłówku C++ Buildera.

Gdy robię jak w Code::Blocks wywala błąd.

Przykład działający w Code::Blocks.


#include <iostream>
#include <list>
#include <sstream>

struct aa
{
  int a1;
  string s;
};

list <aa> li;

void obslugaListy(list <aa>  &pli) {
  aa st;
  for (int i=1; i<=10; i++)  {
    ostringstream ss;
    ss < i;
    string sss = ss.str();
    st.a1 = i;
    st.s = "tekst";
    st.s +=  sss;
    pli.push_back(st);
  }
  for (list<aa>::iterator it=pli.begin(); it != pli.end(); ++it)  {
    cout < (*it).s << endl;
  }
}

int main() {
  obslugaListy(li);
    return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 26 stycznia 2016 przez Patrycjerz Mędrzec (192,340 p.)

Co to znaczy wywala błąd?

0 głosów
odpowiedź 27 stycznia 2016 przez igort Nowicjusz (160 p.)

Znalazłem przyczynę.

Gdy próbuję zadeklarować funkcję z listą w części "__published" przy kompilacji wywala błąd:

Error in module Unit1: Incorrect method declaration in classTForm1

Jeżeli w części public lub private jest OK.

Listing:

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <list>
//----------------------------------------------------------------------------------------------------------------------
using namespace std;

class TForm1 : public TForm
{
__published:	// IDE-managed Components
	TButton *Button1;
	TMemo *m1;
	void __fastcall ShowList(list <int> pl);   // gdy tu deklaruje jest błąd
	void __fastcall Button1Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
	//void __fastcall ShowList(list <int> pl);   // gdy tu deklaruje jest OK 
   list <int> l;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

 

 

komentarz 27 stycznia 2016 przez maly Nałogowiec (37,190 p.)

To dlatego że w sekcji __published mogą być tylko elementy wygenerowane przez IDE(wyświetlane w Object Inspectorze).

komentarz 27 stycznia 2016 przez igort Nowicjusz (160 p.)

Pomylił mi się __published z protected blush

Podobne pytania

0 głosów
1 odpowiedź 593 wizyt
pytanie zadane 8 grudnia 2015 w C i C++ przez mikra25 Użytkownik (580 p.)
0 głosów
1 odpowiedź 390 wizyt
+1 głos
1 odpowiedź 307 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...