私はこのような2クラスがあります。このリストはゴミのメモリですか?
がfoo.h
class A //base class
{
public:
A(QList<int> &timers, QList<int> &positions);
int pIndex = 0;
QList<int> timers;
QList<int> positions;
};
class B : public A
{
public:
B();
private:
QList<int> t { 5, 8, 10, 20, 25 };
QList<int> p { 10, 15, 20 };
};
foo.cpp
B::B()
: A(t, p)
{
}
A::A(QList<int> &t, QList<int> &p)
{
foreach (int v, t) {
qDebug() << "v = " << v;
}
//this->timers = t;
//this->positions = p;
}
を私はBクラスをintitializeとき、それはSGIFAULTについて言っクラッシュします。
auto b = new B();
このエラーが発生する可能性はありますか。
class A
{
public:
A(int p[3])
{
this->v = p;
}
void print()
{
for(int i = 0; i < 3; ++i)
{
printf("v = %d\n", v[i]);
}
}
private:
int *v = NULL;
};
class B : public A
{
public:
B() : A(values)
{
}
private:
int values[3] = {1, 2, 3};
};
int main() {
A *o = new B();
o->print();
}
はvalgrindのを使用してみてください。 – Elazar