0
我想傳遞一個指向從抽象基類繼承的類的指針,但在以下(非常簡化)代碼中調用函數f()時發生EXC_BAD_ACCESS錯誤傳遞對繼承自抽象基類的類的引用
class A {
double *pointer;
public:
A(double *p)
{
pointer = p;
};
virtual void f() = 0;
};
class B :public A{
double *pointer;
public:
B(double *p_) : A(p_){};
void f(){std::cout << pointer[0] << std::endl;};
};
如果我稱之爲eg這樣
double p[2] = {1.,2.};
B b(p);
b.f();
的問題似乎並不在那裏,如果基類不是抽象的,但我想不出有什麼錯上面的代碼。任何幫助解決這個問題,並可能提出一種不同的方式來實現這種結構,非常感謝!
在類「B」中,聲明一個名爲'pointer'的* new *數據成員。因此,「B」類型的對象有兩個*數據成員,稱爲'pointer':一個來自A類,另一個來自'B'類。 – dyp 2014-10-11 23:58:12