作者littletempo (小天普)
看板C_and_CPP
標題[問題] 如何取得子類的成員資料
時間Thu May 5 10:08:37 2011
想請問一下版上的高手,
我有以下物件的物件結構程式碼,
假如我宣告一二維的vector矩陣
vector<vector<Class1*> > plane(10, vector<Class1*>(10));
之後又將矩陣的每一個元素的兩個auto_ptr綁上Class2
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
plane[i][j] = new Class1(new Class2(3, 4), new Class2(5, 6));
}
}
請問我要怎麼取得plane[i][j]上func_a的member1與member2呢?
表達可能不太清楚 還請見諒 謝謝!
[程式碼]
struct Struct1 {
virtual ~Struct1(){}
virtual void func_a() = 0;
virtual void func_b() = 0;
};
class Class1 {
public:
Class1(Struct1 *func_a, Struct1 *func_b);
void func_a();
void func_b();
auto_ptr<Struct1> do_func_a;
auto_ptr<Struct1> do_func_b;
};
Class1::Class1(Struct1 *func_a, Struct1 *func_b):
do_func_a(func_a),
do_func_b(func_b) { }
void Class1::func_a() {
do_func_a -> func_a();
}
void Class1::func_b() {
do_func_b -> func_b();
}
class Class2 : public Struct1 {
public:
double member1, member2;
Class2(double rmember1, double rmember2);
virtual void func_a();
virtual void func_b();
};
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.217.49
→ loveme00835:命名儘量不要加上阿拉伯數字, Design Pattern要當做常 05/05 11:12
→ loveme00835:識 05/05 11:12
→ loveme00835:ConcreteStrategy應分為兩種 05/05 11:14