Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Hozzászólások

(#801) Jester01 válasza WonderCSabo (#800) üzenetére


Jester01
veterán

Az én linuxaimon nem megy, tekintve, hogy
A locale name is typically of the form
language[_territory][.codeset][@modifier], where
language is an ISO 639 language code, territory is
an ISO 3166 country code, and codeset is a character
set or encoding identifier like ISO-8859-1 or UTF-8.

[ Szerkesztve ]

Jester

(#802) WonderCSabo válasza Jester01 (#801) üzenetére


WonderCSabo
félisten

Ubuntun megy így.

(#803) Jester01 válasza WonderCSabo (#802) üzenetére


Jester01
veterán

Definiálnád a "megy" kifejezést? Beállít értelmes locale-t? Mert ugye mint említettem, hibakezelés nincs a programban, tehát ha nem megy azt se lehet észrevenni.

Jester

(#804) WonderCSabo válasza Jester01 (#803) üzenetére


WonderCSabo
félisten

Úgy megy, hogy normálisan kezeli a magyar ékezetes betűket.

Így meg le is lehet ellenőrizni:

printf ("Locale is: %s\n", setlocale(LC_ALL,"Hun") );

Szerk.: Nem úgy értettem, hogy ebben a programban megy, hanem úgy általában, mert régebben már kipróbáltam és ellenőriztem.

[ Szerkesztve ]

(#805) Sk8erPeter


Sk8erPeter
nagyúr

Hali!
Van egy kérdésem fájlkezeléssel és a standard bemenet objektumként való kezelésével kapcsolatban. Jól jönnének az ötletek!

Van egy File osztályom, amiben a számomra szükséges metódusokat valósítom meg fájlkezeléssel kapcsolatban, és az osztály konstruktorának van egy default NULL értékkel ellátott paramétere - a konstruktornak át lehet adni egy fájlnevet, amit ugyanitt a konstruktorban majd megnyitok, stb.
Ha a paraméter üres (NULL), akkor majd a standard inputról kellene olvasnom.
A konstruktor fejléce így néz ki:
File(const char * filename=NULL);

A fájlkezeléshez létrehoztam egy
ifstream file_to_process;
tagváltozót (private), ez lesz az, amibe majd megnyitom a fájlt, amiből olvasok, stb., a standard inputról meg getchar-ral olvastam - ez viszont, ha már OOP, nem egy túl elegáns megoldás, ezért gondoltam arra, hogy akkor a változót istream-mé kéne tenni, ennek úgyis származtatott osztálya az ifstream, majd megoldom úgy - és akkor végül is a cin-t objektumként kezelem.
Ezért átalakítottam így:
istream file_to_process; //ifstream helyett!

Na de most az a para, hogy viszont így a korábban létrehozott metódusok nem működnek, az olyanok, mint pl. a következő:
file_to_process.open(filename, ifstream::in) //vagy ios::in ???

Hogyan tudnám ezt a legegyszerűbben megoldani, hogy ezek a metódusok működjenek istream-mel is?

Előre is köszi az ötleteket!
Remélem valamennyire érthetően írtam, ha nem, kérdezzetek, köszi! :R

[ Szerkesztve ]

Sk8erPeter

(#806) Jester01 válasza Sk8erPeter (#805) üzenetére


Jester01
veterán

Nyilván csak azok működnek amik nem fájl-specifikusak. Az open-t még ott hívd meg amikor létrehozod a stream-et, olyankor még tudod, hogy az ifstream. Később már csak olyanokat illik használni amik sima istream-re is működnek. Ha nagyon muszáj, akkor pl. dynamic_cast segítségével (vagy valami bool adattaggal) csinálhatsz elágazást. Persze ha sok ilyen kell akkor érdemesebb inkább 2 fajta File osztály implementációt készíteni, közös őssel.

Jester

(#807) Sk8erPeter válasza Jester01 (#806) üzenetére


Sk8erPeter
nagyúr

Hali!
Köszi a választ!

A parám igazából éppen az, hogy ha átírom az ifstream típust istream-re, akkor a fordító már jogosan pampog, hogy miért akarok mondjuk egy close() függvényt egy ilyen tagváltozóra meghívni.
A legtöbb függvényem tulajdonképpen elsősorban fájl-specifikus, van olyan metódus, ami megnyit, van olyan, ami bezár (direkt itt nyitom meg, és nem mondjuk a main()-ből, hogy rugalmasabb legyen!), van olyan, ami megmondja a fájl méretét, fájl elejére vagy végére ugrik (a clear() metódus nélkül a fájlvégre éréskor már nem megy a seekg()-vel a fájlméret-lekérdezés, ezért tartottam érdemesnek külön függvénybe bepakolni), és így tovább.

Ez a dolog egyébként a linuxos tail program megvalósításához kellene, aminek a feladat-kiírását korábban itt írtam: [link]
A standard inputról olvasás itt akkor kellene, amikor a júzer nem ad meg fájlnevet paraméterként - épp, ahogy a Linuxon is működik a tail.
Na, és a fájlkezelést, valamint egy tároló feltöltésének függvényét is bepakoltam ebbe a File osztályba, amit említettem, és gondoltam ha a paraméterben nincs megadott fájlnév, akkor lehetne cin-ről olvasni.

Akkor szerinted érdemes inkább a standard inputról olvasásra külön osztályt létrehozni?

Sk8erPeter

(#808) Sk8erPeter válasza emvy (#774) üzenetére


Sk8erPeter
nagyúr

"A fajlmeret-beolvasas nem mukodik"
Már miért ne működne? :F
Legfeljebb akkor lehet gond, ha már fájl végéhez értünk (pl. egyszer már beolvastuk az állományt), de ekkor kiadsz egy clear()-t, és megint menni fog.

Fájlméret-lekérdezés:

ifstream file_to_process("test.dat" , ifstream::in);
//fájl elejéhez ugrás:
if( (int)file_to_process.tellg() != 0) //ha nem az elején vagyunk
file_to_process.clear(); //ha EOF-hoz értünk, már nem menne enélkül...
//elejére ugrunk
file_to_process.seekg(0, ios::beg);
//végére ugrunk
file_to_process.seekg(0, ios::end);
//hol tart?
long length =(long) file_to_process.tellg();
//méret kiírása
cout<<"File merete: "<<length<<" byte"<<endl;

[ Szerkesztve ]

Sk8erPeter

(#809) emvy válasza Sk8erPeter (#808) üzenetére


emvy
nagyúr

En ugy ertettem, hogy ha minden szot kulon elemkent kezelsz, akkor a fajl merete nem fog sokat mondani arrol, hogy mekkora tombre van szukseged.

while (!sleep) sheep++;

(#810) Sk8erPeter válasza emvy (#809) üzenetére


Sk8erPeter
nagyúr

Ja OK, de később írtam, hogy akkor még elkerülte a figyelmem, hogy a szavanként beolvasás a lényeg. :)

Sk8erPeter

(#811) emvy válasza Sk8erPeter (#810) üzenetére


emvy
nagyúr

Tudom en, hogy tudod, csak hidd el, hogy en is tudom :)

[ Szerkesztve ]

while (!sleep) sheep++;

(#812) j0k3r!


j0k3r!
senior tag

hello!

a multkori pelda utan elbizonytalanodtam, hogy mikor milyen 'tipusu' valtozok idealisak egyes feladatokra. evvel kapcsolatban van valakinek valami jegyzete (pdf,doc,html barmi jo), ahol le lenne irva, hogy milyen celokra altalaban milyen 'tipust' kellene hasznalni?
'tipus' alatt azokat ertem, amit elvileg a foiskolan 'tanitottak' (itt a tanitottak szo eleg nagy tulzas), pl.: vector, string, list, stb.
elore is koszonom, ha valaki tudna segiteni.

some men just wanna watch the world burn...

(#813) Sk8erPeter válasza j0k3r! (#812) üzenetére


Sk8erPeter
nagyúr

Innen letölthetsz C++-os jegyzeteket (előadónk oldala), a lényeg röviden elég jól benne van mindegyik anyagrészből: [link] (most épp le tudod tölteni, félév elején eltűnnek a linkek (mondjuk a cím elérhető), hogy lehessen látni, épp hol tartunk)

(#811) emvy: tudom én, hogy tudod. :D

Sk8erPeter

(#814) Sk8erPeter válasza j0k3r! (#812) üzenetére


Sk8erPeter
nagyúr

Egyébként a vector, string és ehhez hasonlók az STL-tárolók témakörbe tartozik.
Igen nehéz lenne általánosan megfogalmazni, mikor melyik típus jó, de pl. a vector egy olyan osztály, amelynek sablonparaméterként át lehet adni a típust. Elég hasznos, mert így szinte bármilyen adattípust tudsz kezelni (egész számok, karakterek, karaktertömbök, stb.).

Sk8erPeter

(#815) j0k3r! válasza Sk8erPeter (#813) üzenetére


j0k3r!
senior tag

koszonom szepen, atnezem oket!

some men just wanna watch the world burn...

(#816) emvy válasza j0k3r! (#815) üzenetére


emvy
nagyúr

Nem konkret implementaciokat erdemes atnezni, hanem adatstrukturakat altalaban.
Nezz utana:

-tomb
-lancolt lista
-map
-hashmap
-hash fuggvenyek altalaban
-fa (tree)

while (!sleep) sheep++;

(#817) j0k3r! válasza emvy (#816) üzenetére


j0k3r!
senior tag

oke, ezekre is rakeresek, neked is koszonom.

some men just wanna watch the world burn...

(#818) Mr. Teddy


Mr. Teddy
őstag

Sziasztok!
Egy olyan problémám volna, hogy egyszerűen képtelen avgyok beállítani azt, hogy ami progit Visual C++ban írok az menjen más gépen is. Konfigurációs hibát ír.
Két proginál sem megy.
Egyik egy sima "hello world" teszt képpen, ami sima konzol alkalmazás. A másik már érthetőbb okokból nem megy, egy windows form managed c++t tartalmazó progi. Utóbbi akkor sem megy ha a .Net frameworköt és a Visual C++ 2008 SP1 Redistributable Package-et felteszem.

(#819) sghc_toma válasza Mr. Teddy (#818) üzenetére


sghc_toma
senior tag

a nativ alkalmazasnak az a baja, hogy nem talalja a megfelelo verzioju c runtime-ot.. legegyszerubben ugy tudod megoldani, hogy statikusan linkeled a crt-t: [link]
arrol lovesem sincs, hogy a managed cucc miert nem megy.. biztosan ugyanaz a .Net framework van fent a ket gepen?

in asm we trust

(#820) Sk8erPeter válasza Mr. Teddy (#818) üzenetére


Sk8erPeter
nagyúr

console applicationt választasz az új project létrehozásakor? ezenkívül fontos, h legyen bejelölve, h "empty project"

Sk8erPeter

(#821) Mr. Teddy válasza sghc_toma (#819) üzenetére


Mr. Teddy
őstag

Na rendben, így ment. Érdekes, ezt az MT-s beállítást tegnap is átállítottam, de nem ment, mindegy, szóval megy.

A windows formosra valami ötlet? Ott CLR-t használok, tehát az nem jó, ha az MFC-t staticra álítom, mert linkelésnél hibát ír.

(#822) Nyiscsák


Nyiscsák
aktív tag

Van nekem egy olyan feladatom hogy meg kell vizsgálni egy mondatról hogy palindrom-e vagy sem. Ez mind oké csak hogy nekem úgy működik ha nem írok szóközt és nem tudom hogy lehetne a szóközöket kiszedni :F

#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
char str[100];
bool pal;

cout<<"Kerem a szoveget:";
cin>>str;

int x = strlen(str)-1;

for(int i=0; i<=x; i++)
{
if(str[i] == str[x-i])
{
pal = true;
continue;
}
else
{
pal = false;
break;
}
}

if(pal == true)
cout<<"Palindrom"<<endl;
else
cout<<"Nem palindrom"<<endl;
getch();

}

Minden segítséget köszönök előre is!

(#823) ArchElf válasza Nyiscsák (#822) üzenetére


ArchElf
addikt

Szerintem ellenőrzés előtt szedd ki belőle a szóközöket, és írásjeleket, kisbetűsítsd az egészet és engedékeny esetben í->i, ó->o, ő->ö, ú->u, ű->ü; dupla/tripla betűk egynek számítanak: cs, dz, dzs, gy, ly, ny, ty, sz, zs

Ja és van 100 karakternél hosszabb (nem értelmes) palindrom is :)

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#824) ArchElf válasza ArchElf (#823) üzenetére


ArchElf
addikt

Ja és ott vannak ugye kivételek is (főleg összetett szavak) :)
pácsó, gazság... ;]

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#825) Nyiscsák válasza ArchElf (#823) üzenetére


Nyiscsák
aktív tag

Épp az a gond hogy nem tudom a szóközöket kiszedni! A többi aprósággal most nem foglalkoznék :)

(#826) ArchElf válasza Nyiscsák (#825) üzenetére


ArchElf
addikt

Legprimitívebben, hogy egyesével végigmész a pufferen, és mindent áttöltesz egy temp bufferbe. Ha szóköz, vagy írásjel jön, akkor azt nem töltöd át.

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#827) Sk8erPeter válasza Nyiscsák (#822) üzenetére


Sk8erPeter
nagyúr

Ilyen feladat itt megtalálható megoldva: InfoC (BME)

(Ez itt sima C.)

#include <stdio.h>
#include <string.h>

void megfordit(char t[]);
void spacetelenit(char t[]);

int main(){
char hello[]="indul a gorog aludni";
char masolat[50];

spacetelenit(hello);
strcpy(masolat, hello);
megfordit(masolat);
if (strcmp(hello, masolat)==0)
printf("Ez egy palindrom!\n");
else
printf("Nem palindrom.\n");
}

//Szóközöket ne vegyük figyelembe
void spacetelenit(char t[])
{
int honnan, hova;

hova=0;
/* végigmegyünk az összes karakteren */
/* "honnan" mindig nő, "hova" csak néha */
for (honnan=0; t[honnan]!=0; honnan++)
/* és ami nem space, másoljuk */
if (t[honnan]!=' ') { /* NEM 32, hanem ' '! */
t[hova]=t[honnan];
hova++;
}
t[hova]=0; /* a papagáj egyből: "lezáró NUL!" */
}

//String megfordítása
void megfordit(char t[])
{
int hossz;
int i;

hossz=strlen(t);
/* csak a feléig forgatunk, különben visszafordítanánk */
for (i=0; i<hossz/2; ++i) {
char temp;

temp=t[i]; /* három lépéses csere */
t[i]=t[hossz-1-i];
t[hossz-1-i]=temp;
}
/* lezáró NUL? van, mert maradt a helyén. */
}

Sk8erPeter

(#828) sghc_toma


sghc_toma
senior tag

C++-ul:

#include <algorithm>
#include <string>

// ...

bool isPalindrom(std::string str)
{
str.erase(std::remove(str.begin(), str.end(), ' '), str.end());
transform(str.begin(), str.end(), str.begin(), ::tolower);

std::string reversed(str);
std::reverse_copy(str.begin(), str.end(), reversed.begin());

return !str.compare(reversed);
}

[ Szerkesztve ]

in asm we trust

(#829) Nyiscsák


Nyiscsák
aktív tag

Köszönöm szépen mindenkinek! Sikerült megoldani! :R

(#830) papa019


papa019
senior tag

Sziasztok!

Olyan kérdéssel fordulnék hozzátok, hogy egy osztály elemeit "vector<>" template fv.-ben tárolom. És a vektorom elemeit szeretném rendezni az osztályomban lévő "char* name;" változók alapján. Ezt milyen fv.-el tudom véghezvinni?

Üdv: Papa019

(#831) Jester01 válasza papa019 (#830) üzenetére


Jester01
veterán

sort

Jester

(#832) papa019 válasza Jester01 (#831) üzenetére


papa019
senior tag

Eddig oké, csak nem tudom felparaméterezni. :S
van egy vektorom így: "vector<Product*>store".

Ekkor ugye a sort első két paraméterével így néz ki:
"sort(store.begin(),store.end())"

Viszont a 3. paramétert nem tudom hogy írjam meg... Írtam összehasonlító operátorokat a Product osztályba, de azokat nem tudom betenni paraméternek, mert a sort függvény sír, hogy két paramétert vár és 3-at adnék neki.
Valaki vmi ötlet? :$

(#833) Jester01 válasza papa019 (#832) üzenetére


Jester01
veterán

Ha tényleg nem szereti a 3 paraméteres változatot akkor ott valami gubanc van a fordítási környezettel mert az összes fellelhető dokumentáció azt állítja hogy ez szabványos. Ha a környezettel nem tudsz mit kezdeni akkor nincs más hátra mint előre, és írni egy a követelményeidnek megfelelő rendezést kézzel.

Jester

(#834) sghc_toma válasza papa019 (#832) üzenetére


sghc_toma
senior tag

ha irtal kisebb operatort, akkor nem kell harmadik parameter, mivel a sort alapbol azt hasznalja.. tehat pl. ennek igy mukodnie kell:

#include <vector>
#include <algorithm>

class Product
{
//...
int value;
public:
friend bool operator<(const Product & p1, const Product & p2);
}

bool operator<(const Product & p1, const Product & p2)
{
return p1.value < p2.value;
}

int main()
{
std::vector<Product> products;

//...

std::sort(products.begin(), products.end());

return 0;
}

[ Szerkesztve ]

in asm we trust

(#835) papa019 válasza sghc_toma (#834) üzenetére


papa019
senior tag

Valamiért nem működik még mindig, pedig így csináltam...
Viszont ha az operátor const referenciákat kap, akkor hibát ad erre a megoldásra...
Viszont nekem nem int értékeket kell rendezni, hanem char* értékek alapján...
meg hiába friend az operátor az osztályomban, a name változót sehogyan sem érem el, így a get_name() fv.-t használom.

És az a legnagyobb baj, hogy a sort fv. meg se hívja az operátorom... :S

(#836) sghc_toma válasza papa019 (#835) üzenetére


sghc_toma
senior tag

nem dobob fel valahova a forrast? konnyebb lenne megtalalni, mi a gubanc.. meg azt is leirhatnad, milyen kornyezetet hasznalsz..

in asm we trust

(#837) papa019 válasza sghc_toma (#836) üzenetére


papa019
senior tag

Ez a 3 fájlom.
[link]
[link]
[link]

A sort_by_name fv-t a Store::list fv-ben hívom meg.
Az operátor és a rendező fv. a Termekek.cpp alján van.

Visual Studio 2010.

[ Szerkesztve ]

(#838) sghc_toma válasza papa019 (#837) üzenetére


sghc_toma
senior tag

a Termekek.h-ban van egy ilyen:

Product& operator<(Product& j1,Product& j2);
ez ugye nem OK, bool a helyes visszateresi ertek..

meg egy ilyen:

return strcmp(j1.get_name(),j2.get_name());

ez nem jo, mert akkor igaz, ha nem egyenlo a ket nev, nem akkor, amikor az elso kisebb..

Es ami a fo problema: a vektorban ugye pointereket tarolsz, az operator< meg referenciakkal dolgozik, ez igy nem okes.. tehat kell egy osszehasonlito fv., ami valahogy igy nez ki:

bool compare(Product * p1, Product * p2)
{
return strcmp(p1->get_name(), p2->get_name()) < 0;
}

ezt megadhatod harmadik parameternek a sort-nak..
remelem nem neztem el semmit (kicsit sietve futottam at a kodot, eppen beadandot irok :) )

in asm we trust

(#839) papa019 válasza sghc_toma (#838) üzenetére


papa019
senior tag

köszi már majdnem jó...
Az operátort kitöröltem, gondolom a compare fv. mellett arra már nincsen szükség...
De a fordító ezt írja ki:
1>Termekek.obj : error LNK2019: unresolved external symbol "bool __cdecl QuickFrozen::compare(class QuickFrozen::Product *,class QuickFrozen::Product *)" (?compare@QuickFrozen@@YA_NPAVProduct@1@0@Z) referenced in function "public: void __thiscall QuickFrozen::Store::sort_by_name(void)" (?sort_by_name@Store@QuickFrozen@@QAEXXZ)
1>D:\Egyetem\2. félév\Programozás alapjai 2\NagyHF\nhf\Debug\nhf.exe : fatal error LNK1120: 1 unresolved externals

(#840) sghc_toma válasza papa019 (#839) üzenetére


sghc_toma
senior tag

gondolom a compare fv-t a default nevterben deklaraltad.. tedd a QuickFrozen nevterbe!

in asm we trust

(#841) papa019 válasza sghc_toma (#840) üzenetére


papa019
senior tag

minden benne van a quickfrozen névtérben

(#842) sghc_toma válasza papa019 (#841) üzenetére


sghc_toma
senior tag

hmm.. a fuggveny definicioja is a QuickFrozen nevterbe 'szol' (a Termekek.cpp-ben QuickFrozen::compare(Product * p1, Product * p2)-kent van)? bocs, ha nyilvanvalot kerdezek, de masra most nem tudok gondolni...

in asm we trust

(#843) papa019 válasza sghc_toma (#842) üzenetére


papa019
senior tag

igen
csak a sort_by_name() van egy osztályon belül még

az a fura, hogy ha kikommentezem a compare fv.-t, akkor is ugyanez a hiba :S

(#844) sghc_toma válasza papa019 (#843) üzenetére


sghc_toma
senior tag

hm.. fura, nalam fordul.. itt vannak a diff-ek a pastebin-es kodhoz kepest:

diff Termekek.h Termekek_mine.h

158c158
< Product& operator<(Product& j1,Product& j2);
---
> bool compare(Product * j1, Product * j2);

diff Termekek.cpp Termekek_mine.cpp

482c482
< sort(store.begin(),store.end());
---
> sort(store.begin(),store.end(), compare);
485c485
< bool operator<(Product& j1,Product& j2)
---
> bool QuickFrozen::compare(Product * j1, Product * j2)
487c487
< return strcmp(j1.get_name(),j2.get_name());
---
> return strcmp(j1->get_name(), j2->get_name()) < 0;

ja, es a main fuggvenyed void visszateresi erteku.. ez nem okes, int-nek kene lennie.. nem is ertem, a cl miert nem szol erte (W4-gyel sem)..

in asm we trust

(#845) papa019 válasza sghc_toma (#844) üzenetére


papa019
senior tag

Isten vagy. 1000 hála! :R :R :R :R :R :R

(#846) sghc_toma válasza papa019 (#845) üzenetére


sghc_toma
senior tag

nincs mit, orulok, hogy segithettem :)

in asm we trust

(#847) harry


harry
veterán

Sziasztok, tudnátok ebben segíteni? [link]
Köszönöm.

Theoretically, this damn thing oughta work now.

(#848) harry válasza harry (#847) üzenetére


harry
veterán

Időközben sikerült találnom egyet, azt hiszem, innen már tovább tudok menni.
[link]

Theoretically, this damn thing oughta work now.

(#849) icespeak


icespeak
csendes tag

Helló!
A segítségeteket szeretném kérni az alábbi programban. Az lenne a feladat, hogy egy origóból induló vektorral eltoljam a megadott köröket. Megadjuk a vektor végpontját a körök középpontját és a sugaraikat. Csak valamiért nem megy.

[B]main.cpp[/B]
#include <iostream>
#include <vector>
#include "read.h"
#include "pont.h"
#include "kor.h"
#include "vektor.h"
#include <string>

using namespace std;

int main()
{
double d,e,r,x,y,u,k;
cout<<"Adja meg a vektort\n";
cout<<"d= "; cin>>d;
cout<<"e= "; cin>>e;


int n=ReadInt("\nKorok szama: ", "Termeszetes szamot varok!");
vector<Kor> t(n);
for(int i=0; i<n;++i)
{
cout<<"Az"<<i+1<<"-dik kor koordinatai:\n";
x=ReadReal("\t x: ", "Valos szamot varok!");
y=ReadReal("\t y: ", "Valos szamot varok!");
Pont c;
c.Beallit(x,y);
r=ReadRealP("A kor sugara: ","Nem negativ valos szamot varok!");

c.Eltol(u,k,d,e);
c.Kiir(u, k);
}


return 0;
}

[B]kor.h[/B]
#ifndef KOR_H_INCLUDED
#define KOR_H_INCLUDED

#include "pont.h"


class Kor{
private:
Pont c;
double r;
public:
};

#endif // KOR_H_INCLUDED

[B]pont.h[/B]
#ifndef PONT_H_INCLUDED
#define PONT_H_INCLUDED

#include "vektor.h"


class Pont{
private:
double x,y;
public:
Pont() {x=y=0.0;}
void Beallit (double a, double b) {x=a; y=b;}
void Eltol(double u, double k, double &a, double &b);
void Kiir(double u, double k);
};


#endif // PONT_H_INCLUDED

[B]vektor.h[/B]
#ifndef VEKTOR_H_INCLUDED
#define VEKTOR_H_INCLUDED

class Vector2D{
private:
double d,e;
public:
Vector2D(): d(0.0), e(0.0) {}
Vector2D(double &a, double &b): d(a), e(b) {}
};

#endif // VEKTOR_H_INCLUDED

[B]pont.cpp[/B]
#include <iostream>
#include "pont.h"
#include "vektor.h"

using namespace std;

void Pont::Eltol(double u, double k, double &a, double &b)
{
u=x+a;
k=y+b;
}

void Pont::Kiir(double u, double k)
{
cout <<"u: "<<u<<endl;
cout <<"k: "<<k<<endl;
}

(#850) Gyuri16 válasza icespeak (#849) üzenetére


Gyuri16
senior tag

az Eltol fuggvenynek az u es k valtozokat ertek szerint adod at, igy aztan nem kapod meg bennunk a vart eredmenyt. Probald meg inkabb azokat referenciaval atadni (a,b helyett)

amugy az eltolasnak nem a pont private x,y valtozoit kellene eltolnia? akkor a kiirnak se kellene parameter. nem ertem mire kell az u,k

Nem vagyok egoista, csak uborkagyalu!

Copyright © 2000-2024 PROHARDVER Informatikai Kft.