class - C++ instantiation via pointer -
here code :
#include <iostream> using namespace std; class form{ public: form(int c ){ code = c; } int code; }; void createform(form* f,int c){ f = new form(c); } int main(){ form* f1; form* f2; createform(f1,1111); createform(f2,2222); cout<<f1->code<<endl; cout<<f2->code<<endl; return 0; }
as result,i didn't see printed out. know f1 & f2 not created actually. i'm wondering if can instantiate class this? if yes, how ?
void createform(form* f,int c){ f = new form(c); }
will create object , assign address local f
- copy of original f1
, f2
withing function's scope.
the original pointers left unchanged, following cout<<
statements lead undefined behavior.
what you're trying achieve can accomplished passing pointer reference:
createform(form*& f,int c)
you forgot call delete
, have memory leak.
even better - don't use pointers @ all.
Comments
Post a Comment