Hirdetés
- Samsung Galaxy A33 5G - a három az majdnem öt
- Milyen okostelefont vegyek?
- Ez lehet az Apple hajlítható telefonjának formája, mérete
- Szívós, szép és kitartó az új OnePlus óra
- One mobilszolgáltatások
- Android alkalmazások - szoftver kibeszélő topik
- Azonnali mobilos kérdések órája
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Apple Watch
- Hivatalos a OnePlus 13 startdátuma
Új hozzászólás Aktív témák
-
caddie
csendes tag
válasz
norbiphu
#159
üzenetére
A kodot nem neztem, de a copy konstruktor azert hivodik, mert az operator*() egy temporalis objektumot 'hoz letre' es ez adodik ertekul a b-nek.
# 1 b = b * 2
# 2 b = [ c ]
# 3 b = c
Ez lenne a normalis megvalositasa egy opeartor*() -nak, amely 'free' esetleg friend fuggvenykent van megvalositva.
[Szerkesztve] -
norbiphu
őstag
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-
-
bpx
őstag
válasz
norbiphu
#102
üzenetére
#include <iostream>
class T{
char* t;
public:
T(char* z) {
t=new char[strlen(z)+1];
strcpy(t,z);
t[strlen(z)]='\0';
// tulcimezted a tombot, nem kell a +1, mert 0-tol indul a cimzes
}
~T() {
if (t!=NULL) delete[] t;
// destruktort eszedbe ne jusson enelkul megirni, kulonben ugy szall el, hogy csak na}
// ehhez persze param. nelkuli konstruktor is kell, ami beallitja NULL-ra akkor is, ha nem csinalsz semmit
};
int main() {
T A(''323232'');
}
[Szerkesztve] -
FehérHolló
veterán
válasz
norbiphu
#102
üzenetére
Kicímzel a tömbből a '\0' berakásánál. A legnagyobb index strlen(z).
Másrészt ezzel egy nagyobb baj is van. Ha z alapból nem nullterminált, akkor nem működik rá a strlen() függvény. Ha pedig z nullterminált, akkor szükségtelen a t végére berakni egy '\0'-t.
A harmadik gond pedig a main()-en belül az A objektum inicializálásánál van. A () zárójelbe nem két ''-t (shift+1) kell rakni, hanem egy ''-t (shift+2). De ha így adod be neki a stringet, akkor zárd le '\0'-al, és nem lesz baja a konstruktornak sem. (A két első hibát kiküszöbölöd.)
Szerk: Jé, most látom, hogy két shift+1 egymás mellett ugyanúgy néz ki, mint a shift+2, ha code blokkba rakom.
[Szerkesztve] -
FehérHolló
veterán
Bocs, most látom, hogy közben szerkesztetted az előzőt.
A destruktor jó, valamit közben szúrtál el. A két legvalószínűbb dolog a te esetedben, ami heap corruptiont okozhat:
- valahol közben már kitörölted a tort tömböt, a destruktor is törölni szeretné és ez nem tetszik az oprendszernek
- zárójeles a new, delete pedig zárójel nélküli (ez az esetedben fenn áll) -
bpx
őstag
operator+ - nál muszáj valami helyi dolgot visszaadnom ami az eredményt tárolja
ha egy helyi pl. tmp változót létrehozol, és abba teszed az eredményt, akkor azt ne referenciaként add vissza, mert a fv lefutása után a lokális változó megszűnik
referenciaként pl. this-t vagy az egyik kapott opreandust tudod visszaadni
Ú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!
- Kerékpárosok, bringások ide!
- One otthoni szolgáltatások (TV, internet, telefon)
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Genshin Impact (PC, PS4, Android, iOS)
- Xbox Series X|S
- TCL LCD és LED TV-k
- Okos Otthon / Smart Home
- E-roller topik
- Hardcore café
- Álláskeresés, interjú, önéletrajz
- További aktív témák...
- LENOVO ThinkPad T470s,14",FHD,i7-7500U,16GB DDR4,512GB SSD,WIN11
- SteelSeries Arena 3 2.0 asztali PC hangszóró (Bluetooth + AUX)
- MSI Stealth A16 AI+ A3XWHG-027 - Ryzen AI 9 HX 370 / RTX 5070 Ti / 32GB / OLED 240 HZ - Garanciás
- Budget Gamer PC eladó! 17-7700K/32GB RAM/ 1660Super
- Lenovo Legion Go S Steam 512GB Z2 GO // Vadiúj // 2 év Garancia
- Apple iPhone 7 32GB fekete színben, független
- GYÖNYÖRŰ iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS4050
- Macbook Pro 2019 Laptop A2141 i9
- Telefon felvásárlás!! Samsung Galaxy S23/Samsung Galaxy S23+/Samsung Galaxy S23 Ultra
- Acer TravelMate P214 i3-1115G4 16GB 512GB 14" FHD 1év garancia
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


)




