C/C++

GCC 4(.1.1) template osztaly szarmaztatasa template osztalybol...

Fórumok

ami 3.3.6-os GCC-vel eddig mukodott, az a 4-es verzioval nem ... hogyan lehetne megoldani, hogy megis menjen a kovetkezo dolog:
( a problema lenyege rem. latszik ebbol az egyebkent semmire sem jo peldabol :) )

// A.h
#ifndef A_H
#define A_H

template
class A
{
protected:
T a;
public:
A(T x)
{
a = x;
}
T x() const{return a;}
};

#endif

// B.h
#include "A.h"

template
class B : public A
{
private:
T b;
public:
B(T x):A(x)
{
b = x*2;
}
T y()
{
return a+b;
}
};

//main.cpp
#include "A.h"
#include "B.h"

#include
using namespace std;

int main()
{
B x(4);
cout<
return 0;
}

//
a fordito uzenete:
B.h: In member function 'T B::y()':
B.h:15: error: 'a' was not declared in this scope

tulajdonkepp amiatt van ez, hogy B es A kapcsolata nem is-a kapcsolat(vagyis B nem leszarmazottja A-nek)... a kerdes az, hogy hogyan lehetne megis megoldani ezt 4-es GCC-vel...

qemacs-ffmpeg

Fórumok

Hali!

Valaki fordította már a qemacs progit --with-ffmpeg config opcióval?
Nekem sajnos nem jön össze. :(
Az ffmpeg lefordul, de a qemacs video.c fájl nem.

which

Fórumok

hi!

hogy tudnám programból lekérdezni a futó proggi helyét a filerendszerben? magyarul kb. a 'which' parancs c++ megfelelője érdekelne. úgy emlékeztem hoy az argv[0] ezt adja vissza, de nem...

Ablakkezelők

Fórumok

Szeretnem megtudni milyen multi platformos ablakezelokk vannak es kinek mi a velemenye rola, illetve hol talalhato. Milyen windowsos forditokkal egyut hasznaltatok mar.
Valojaban LIB-et keresek C++ ala és az azzal kapcsolatos tapasztalatokat.

c++ futtatás

Fórumok

hy!
Fél éve használok kb. Slackware-t (és Linux-ot). Régen Win alatt megtanultam egész jól c++-ozni. Az a kérdésem, hogy ezt a kódot hogyan lehet futtatni? Mit kell csinálni, hogy lefusson?
:

#include "<"iostream">" - " nélkul
void main() {
cout<<"Hello World!" ;
}

Ez Win alatt a Devc++-vel lefutott...

c progiból futó program keresése

Fórumok

Hello!

Egy sima c progiban indítok egy másikat a system() függvénnyel.
Ezután szükség lenne arra, hogy figyelje ugyanez a progi az indított progit, főleg azt, hogy fut e még. Mint a bash-ban a
test -x vmi -vel.

Van egyáltalán ilyen?
Fontos, hogy mindenképpen c programban, tehát script (és a fenti megoldás) nem jó.

nagyonthx

Kdevelop - Qt ékezet probléma

Fórumok

Sziasztok!

A Kdevelopban Qt segítségével felépítettem egy grafikus ablakot, néhány qtlistbox elemmel. Az a gond, hogy az ablak konstruktorában inicializált listbox kérdőjeleket tesz az ő és ű betűk helyére. Megnéztem, a program locale beállítása hu_hu. Az adatokat mysql táblából olvasom, annak iso latin 2-n belül magyar a kódolása.

Mit tegyek?

Üdv, Pter

delphi --> c++ kerdesek

Fórumok

Sziasztok,

Lenne par (egyenlore csak egy :-) ) harci kerdesem amely a ket nyelv kozti parhuzamossagot illeti. A feladat, hogy delphi-bol kellene atmentenem par regi algoritmusomat C++-ba majd Linux alatt keresztplatformos allapotban mukodesre birni oket. Szerencsere talaltam hozza egy nagyszeru konvertert ami a nehezet megoldja helyettem, de vannak meg neki hianyossagai amiket szeretnek potolni. Ilyen pl. a class method problema is amit szeretnek megfeleltetni a C++-ban.

Ez a delphi felol egy peldaban igy nezne ki:

class function Example: boolean;
begin
  Result := False;
  ...
end;

Ami ugye annyit tesz, hogy a class kulcsszo osztalyfuggove teszi a metodust az alapertelmezett objektumfuggo tulajdonsag helyett, igy meghivhato lesz anelkul is, hogy lenne mar belole letezo peldany. (Pl: praktikus constructort hivni vele, ha van meg macera a constructorral meghivas elott)

A masik oldalrol pedig (C++) van egy hasonlo eset amikor egy valtozot statikuskent deklaralok az osztalyban, igy az a betoltodeskor lesz lefoglalva nem pedig a peldany letrehozasakor, emellett ez egyetlen peldanyban marad meg akkor is, ha n objektumot letrehozok.

Na es akkor itt jonne a kerdesem is. :-)
Ha a delphis "class method"-od statikus fuggvenykent konvertalom, akkor az ugyanazt a viselkedest fogja-e produkalni?

Koszi elore is a valaszokat. :-)

unlink() + bind() versenyhelyzet UNIX domain socket-re bind-eléskor

Fórumok

Kedves Fórumozók!

A saját fejelsztésű szerverrmhez jelenleg TCP-n lehet kapcsolódni. Ehhez a szerverben a socket(), setsockot(... SO_REUSEADDR) bind(), listen() és accept() függvényeket hívom a megfelelő paraméterekkel. Ha két példányban indítom a szervert, akkor a második példányban a bind() meghiúsul Address already in use-zal. Csodás.

Szeretném a szervert átírni UNIX domain socket-es kapcsolatok fogadására. Ehhez a bind() elé egy unlink()-et kell tenni, azért, mert korábbról a fájlrendszerben ottmaradhatott egy socket fájl, és ha ott marad, akkor a bind() meghiúsul Address already in use-zal, noha nem kéne neki (ugyanis a programnak nem fut második példánya). Tehát a hívási sorrend ez lesz: socket(), setsockopt(... SO_REUSEADDR), unlink(), bind(), listen() és accept() lesz. Na, ezzel az a baj, hogy ekkor el lehet indítani két példányban a szervert, ami rossz.

Tudtok versenyhelyzet (race condition) -mentes megoldást, ami csak egy példányban engedi elindulni a szervert (tehát ha indításkor 0 példány fut, akkor el engedi indulni, ha 1 példány fut, akkor nem engedi, több példány pedig nem futhat), és akkor is működik, ha ott marad egy régi socket fájl?

Google-lel próbáltam "UNIX domain socket" bind "race condition"-re keresni, de nem találtam a specifikációnak megfelelő megoldást. (Amiket találtam, azok vagy nem unlink()-elnek, ami rossz, vagy saját bevallásuk szerint is race conditiön-ösek, ami rossz, vagy egyszerre több példányt is engednek indítani a szerverből, ami rossz).

Kösz:

pts

File zárolása UNIXok alatt (főleg Linux alatt)

Fórumok

Sziasztok!

Lenne egy nagy gondom: nem tudom, hogy mi a legjobb módszer egy file lockolására UNIX alatt.

Próbáltam az fcntl advisory lockot használni, de nem működött, a mandatory lockot nem ajánlja, a flock pedig NFS-en keresztül nem működik.

Advisory locknál még probléma, hogy a zárolás csak a fájl adott blokkjaira vonatkozik.

A mostani megoldásom eléggé barbár (és ideiglenes): egyszerűen csinálok egy filenev.lock fájlt, amit az access segítségével csekkolok.

Minden segítséget megköszönnék.