- A Colorful "fagyosan kompakt" alkatrészekkel megy elébe a nyárnak
- A Keychron ismét egy űr betöltését vállalta magára az egerek szegmensében
- Az átlagnál vaskosabb ventilátorok kandikáltak ki a Corsair vitorlája mögül
- Csatába küldte Magyarországon idei csúcs hangprojektoros szettjét a Samsung
- Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Az átlagnál vaskosabb ventilátorok kandikáltak ki a Corsair vitorlája mögül
- Hobby elektronika
- Házimozi, és Hifi kábelezés!
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Milyen billentyűzetet vegyek?
- ThinkPad (NEM IdeaPad)
- Melyik tápegységet vegyem?
- Milyen processzort vegyek?
- Raspberry Pi
Hirdetés
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Frissítve! Samsung Univerzum: Az S23-at is megbabonázta a Galaxy AI
ma Rengeteg Samsung megkapja az AI alapú nyelvi, képi és keresőfunkciókat.
-
Az üzleti chatbot lehet az új fejőstehén
it Üzleti chatbotot indított az Anthropic, azt reméli, hogy sok pénz folyik majd be a cégektől.
Új hozzászólás Aktív témák
-
norbiphu
senior tag
üdv!
kéne egy kis help nem értem mi a hiba... (csak az idevágó kódrészeket emelem ki)
header:
class Num{
int egesz;
char* tort;
long exp;
public:
Num Add(Num X, Num Y);
fgv (maga a művelet még nincs megírva)
Num Num::Add(Num X, Num Y) {
Num Result(0,''0'',0);
return Result;
}
így hívom meg:
Num::Add(A,B);
és ezt a hibát kapom:
1>j:\documents and settings\palotai norbert\dokumentumok\visual studio 2005\projects\nagyhazi\nagyhazi\main.cpp(9) : error C2352: 'Num::Add' : illegal call of non-static member function
1> j:\documents and settings\palotai norbert\dokumentumok\visual studio 2005\projects\nagyhazi\nagyhazi\num.h(19) : see declaration of 'Num::Add'
de miért?
ha ezt az összeget értékül adom egy C típusú Numnak akkor az így néz ki C=Num::Add(A,B); ehhez ugye, nem kell operator=, csak copy konstruktor?
[Szerkesztve]"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
-
norbiphu
senior tag
újabb kérdés:
[link]
C = A + B;
operator+ meghívódik, amik benne vannak le is futnak, de amikor a return tmp; - hez ér elszáll, és fogalmam sincs, hogy miért. szintaktialig elvileg ok.
előre is köszi a helpet!"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
-
norbiphu
senior tag
Num& Num:perator+(const Num& b){
Num tmp(0,''0'',0);
tmp.SetEgesz(3);
tmp.SetTort(''000'');
return tmp;
}
Num& Num:perator=(const Num& b){
this->egesz=b.egesz;
this->tort=b.tort;
this->exp=b.exp;
return *this;
}
A = B kódra lefut, A megkapja B értékeit..
C = A + B -re lefut az operator+ visszadja tmp-t, de operator= nem kapja meg valamiért
szerk: operator= fejléc még megkapja a tmp értékeit, de amikor belép a műveleti részbe, b értékei 0, bad ptr, 0 lesz. miért felejti el?
[Szerkesztve]"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
-
norbiphu
senior tag
és nem tudja értelmezni, azt hogy C = A + B ?
operator+ - nál muszáj valami helyi dolgot visszaadnom ami az eredményt tárolja. operator+ meg operator= nem akar együttműködni vagy mi lehet a gáz? lövésem sincsen...
operator=
mi a tökömnek kell operator overload jobb lenne nekem egy Add fgv
szerk:
wow micsoda fejlemények: A + B = C - vel működik
[Szerkesztve]"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
-
norbiphu
senior tag
class Num{
int egesz;
char* tort;
unsigned long long exp;
ez lenni adatstruktúra, ennek a destruktorát így kell megírni elvileg:
Num::~Num(){
delete tort;
};
csak mert ha írok destruktort elszáll a progim"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
-
norbiphu
senior tag
delete[]-vel sem megy
memóriát pedig a konstruktor foglal neki még az elején:
tort=new char[strlen(t)+1];
szerk:
Program ...
HEAP CORRUPTION DETECTED: after Normal block (#134) at 0x001A3A20.
CRT detected that the application wrote to memory after end of heap buffer.
[Szerkesztve]"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
-
-
norbiphu
senior tag
válasz FehérHolló #101 üzenetére
#include <iostream>
class T{
char* t;
public:
T(char* z) {
t=new char[strlen(z)+1];
strcpy(t,z);
t[strlen(z)+1]='\0';
};
~T() {delete[] t;}
};
int main() {
T A(''323232'');
}
ez se fut le...
[Szerkesztve]"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
-
norbiphu
senior tag
-
-
norbiphu
senior tag
válasz norbiphu #107 üzenetére
KÉSZ!
operator= - ben is túlindexeltem a /0 - t, csak nem ott kerestem a hibát.
valamint a kivonásban úgy pakoltam a result int tömbből az eredményeket a visszaadandó tört stringbe, hogy nem is volt neki memória foglalva (ezt miért engedi a vs, miért nem warningolt? )
FehérHolló, -Zeratul-"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
-
norbiphu
senior tag
üdv!
adott ez a kód [link]
azt nem értem, hogy b = b *2 - nél, meg b = 3 * b miért hívodik meg a copy konstruktor .
addig oké, hogy operator* miatt kiirja az szorzót, utána pedig operator= - höz ugrik.
ott viszont elvesztettem a fonalat, hogy miért ez a sorrend.
köszi a segítséget"Hmm," sed teh lolrus. "Maybe we shud go ask Ceiling Cat?"
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Az átlagnál vaskosabb ventilátorok kandikáltak ki a Corsair vitorlája mögül
- exHWSW - Értünk mindenhez IS
- gban: Ingyen kellene, de tegnapra
- PlayStation 5
- Nagyrobogósok baráti topikja
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Termékoldal buktatta le a Huawei Watch Fit 3-at
- Nemzetközi piacra érkezik az Amazfit Helio Ring
- Politika
- További aktív témák...
- Xiaomi Redmi Note 11 Pro 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó gamer PC (i5-11400F/16GB DDR4/500GB SSD+1TB HDD/RTX 2060 6GB)
- Bomba ár! Lenovo ThinkPad X270 - i7-7G I 16GB I 256GB SSD I 12,5" I HDMI I Cam I W10 I Garancia!
- Bomba ár HP Spectre Pro X360 G2 - i5-6G I 8GB I 256SSD I 13,3" FHD Touch I Cam I W10 I Garancia!
- DELL OPTIPLEX 3020 - i5/8GB/256GB/GT710