Auf Private Member einer Klasse zugreifen :S
-
:DynamicLink. schrieb:
int main(int argc, int **argv[]) { Note mario; mario.get_note(2); std::cout<<mario.note; return 0; }man kann nicht auf private member von außen zugreifen
das ist auch der sinn von "private"
wenn du per . oder -> operator auf sie zugreifen möchtest (direkt),soltlest du sie public machen
-
danke nun verstehe ich alles

danke für die nette hilfe.liebe grüße aus
berlin
-
hi
ich hoffe,dass ich nun keinen fehler begeben hab(doppelpost)

Aber es gibt folgenden ERROR:
error C2065: 'value_magazine': nichtdeklarierter Bezeichneraus folgendem code:
class test { public: void set_some(int value_some); private: int xxx; //.. }; void test::set_some(int value_some) { xxx = value_some; }liebe grüße aus
berlin
-
:DynamicLink. schrieb:
Aber es gibt folgenden ERROR:
error C2065: 'value_magazine': nichtdeklarierter Bezeichneraus folgendem code:
Unwahrscheinlich, weil value_magazine im ganzen Code nicht auftaucht.
-
gesamter quelltext von meiner funktion(natürlich ohne richtigen Variablennamen, aber ansonsten hab ich es dort auch so ca.):
class test { public: int get_test(); void set_test(int value_test); private: //sonstiges.. int test; }; void test::set_lol(int value_lol) { lol = value_lol; } int test::get_lol() { if(lol >= 16) { std::cout<<"xxxx"<<std::endl; } else { return lol; } } void test::set_test(int value_test) { test = value_test; } int test::get_test() { if(!(test >= 64)) { std::cout<<"......"<<std::endl; } else { return value_test; } }sorry für die variablennamen, aber ich wollte nicht meine echten namen herzeigen, wäre mir zu meinlich

liebe grüße
-
hy nochmal
ich weiß nicht warum keiner zurückschreibt, aber ich glaube,dass es wegen dem Code ist mit "lol" usw. wie gesagt, ich will es nicht veröffentlichen, da es echt peinliche variablennamen sind, wie "Katze" als harmlosesten Namen für eine Variable
bitte helft mir

liebe grüße
-
class test { public: int get_test(); int get_lol(); void set_test(int value_test); void set_lol(int value_lol); private: //sonstiges.. int test; int lol; }; void test::set_lol(int value_lol) { lol = value_lol; } int test::get_lol() { if(lol >= 16) { std::cout<<"xxxx"<<std::endl; } else { return lol; } } void test::set_test(int value_test) { test = value_test; } int test::get_test() { if(!(test >= 64)) { std::cout<<"......"<<std::endl; } else { return value_test; } }
-
hi
sry für die frage aber wo war mein fehler?
ich wollte eigentlich nicht den ganzen code sehen, sondern nur erklärt bekommen, aber vielen tausend dank
liebe grüße
-
void test::set_lol(int value_lol) { lol = value_lol; } int test::get_lol() { if(lol >= 16) { std::cout<<"xxxx"<<std::endl; } else { return lol; } }Diese Methoden hast du nicht deklariert.
-
David_pb schrieb:
void test::set_lol(int value_lol) { lol = value_lol; } int test::get_lol() { if(lol >= 16) { std::cout<<"xxxx"<<std::endl; } else { return lol; } }Diese Methoden hast du nicht deklariert.
hy
sorry aber ich erkenne keine veränderung meines quelltextes:void test::set_lol(int value_lol) { lol = value_lol; } int test::get_lol() { if(lol >= 16) { std::cout<<"xxxx"<<std::endl; } else { return lol; } }
liebe grüße
p.s schreib mir nur bitte meinen vorigen falschen quelltext und deinen richtgen hin,damit ich mal schauen kann, was da verändert wurde.
sorry vielmals.
-
Das ist neu:
class test { public: int get_lol(); void set_lol(int value_lol); private: //sonstiges.. int lol; };Wie gesagt, die Deklarationen fehlten und eine Membervariable. Aber die beiden Quelltexte vergleichen, dazu hättest du doch wohl noch im stande sein können...
-
ok letzte bitte noch,bevor ich schlafen gehe:
Könntest du mal meinen Code hier heinein kopieren wo alles gefehlt hat und deinen hier ebenfalls reinkopieren, damit ich nun draufkomme.Denn wenn ich beides in einem Editor oder sonst wo vergleiche, kommt echt nur das gleiche

Bitte hilf mir nur dieses eine mal ein letztes mal
liebe grüße