seaza Posted March 1, 2012 Report Posted March 1, 2012 am urmatorul progr: #include<iostream>#include<string>using namespace std;class persoana{ int varsta;public: char *pnume; persoana(char *n,int v):varsta(v) { pnume=new char[strlen("Anonim")+1]; strcpy_s(pnume, n); } int spune_varsta() { return varsta; }};int main(){ persoana p1("vasilache",45); persoana p2=p1;//apel constructor de copiere cout<<"\n"<<p1.pnume<<"are"<<p1.spune_varsta()<<"ani"; cout<<"\n"<<p2.pnume<<"are"<<p2.spune_varsta()<<"ani"; strcpy(p2.pnume,"Gigi"); cout<<"\n"<<p1.pnume<<"are"<<p1.spune_varsta()<<"ani"; cout<<"\n"<<p2.pnume<<"are"<<p2.spune_varsta()<<"ani"; system("PAUSE"); return 0;}am o eroare la linia 12.. ma ajuta cnva? Quote
Zamolxis666 Posted March 1, 2012 Report Posted March 1, 2012 Pune si tu eroare si boldeaza linia 12. Din cate stiu eu trebuie sa fie public class persoana. Iar in main ar trebui sa aipersoana p1 = new persoana ("Vasilache", 45); Quote
nedo Posted March 2, 2012 Report Posted March 2, 2012 Linia numarul 12 estestrcpy_s(pnume, n);Spune ce anume eroare iti da. Daca am gasit eu referinta corecta pentru strcpy_s ai nevoie ca al 2-lea argument sa fie numarul de caractere ce trebuie copiate.Adicastrcpy_s(pnume, (sizeof(n)/sizeof(n[0])), n)prin (sizeof(n)/sizeof(n[0]) poti afla numarul de elemente dintr-un char array.Totusi pentru corectitudine te rog sa postezi eroarea. Quote
cmiN Posted March 2, 2012 Report Posted March 2, 2012 #include<iostream>#include<string>[COLOR=#40e0d0][B]#include <cstring>#include <cstdlib>[/B][/COLOR]using namespace std;class persoana{ int varsta;public: char *pnume; persoana(char *n,int v):varsta(v) { pnume=new char[strlen("Anonim")+1]; [COLOR=#40e0d0][B]strcpy(pnume, n);[/B][/COLOR] } int spune_varsta() { return varsta; }};int main(){ persoana p1("vasilache",45); persoana p2=p1;//apel constructor de copiere cout<<"\n"<<p1.pnume<<"are"<<p1.spune_varsta()<<"ani"; cout<<"\n"<<p2.pnume<<"are"<<p2.spune_varsta()<<"ani"; strcpy(p2.pnume,"Gigi"); cout<<"\n"<<p1.pnume<<"are"<<p1.spune_varsta()<<"ani"; cout<<"\n"<<p2.pnume<<"are"<<p2.spune_varsta()<<"ani" << endl; system("PAUSE"); return 0;} Quote
nedo Posted March 2, 2012 Report Posted March 2, 2012 El folosea versiunea microsoft a strcpy si anume strcpy_s, probabil eroarea primita este datorita faptului ca a inclus "string" si nu versiunea c si anume "string.h"Pentru referinet aici Quote
seaza Posted March 2, 2012 Author Report Posted March 2, 2012 (edited) lucrez in visual studio, iar strcpy nu merge daca nu incluzi si header.ele d care zice @cmiN, si anume: #include <cstring>#include <cstdlib>...de care eu uitasem:Diar in visual studio nu mai ai <__.h>, d asta folosisem strcpy_s..greetings @cmiN! Edited March 2, 2012 by seaza Quote