Новое во вложенных классах
всем привет,
Мне трудно использовать вложенные классы. большинство примеров выглядят так
class A { public: private: class B{ public: private: } }
Однако программа, над которой я работаю, требует от меня реализации вложенного класса, который выглядит следующим образом
class A { public: //some functions private: class B { public: string s; int x; }//ends the nested class string s2; int x2; }//ends outer class
Хорошо! Итак, теперь, когда я дал модель того, с чем я работаю
мои вопросы таковы:
1. делаю ли я все еще конструктор для класса B?
как бы это выглядело ....
class A:: class A( ) { //constructor for A class A:: class B:: class B( ) { //constructor for B }
кстати это выглядит запутанно
ОПЕРАЦИОННАЯ.....
class A ::class A(){ } //class A constructor class A:: Class B :: class B (){} // class B constructor outside of A's constructor
2. как я могу использовать переменные для класса B?
всегда ли я должен указывать, где они находятся?
например
type class A ::class A function(){ x2= x+ 5; return x2; }
x2 принадлежит A, но поймет ли компилятор, что x принадлежит B?
Что я уже пробовал:
честно говоря моя первая попытка была напечатана следующим образом
class A :: class A( ){ class A::class B :: class B(){ } }
У меня было внутреннее чувство, что это совершенно неправильно. Я еще не отладил, потому что все еще пишу остальные функции для класса А