Right now I have a class A that inherits from class B, and B does not have a default constructor. I am trying the create a constructor for A that has the exact same parameters for B‘s constructor
struct B {
int n;
B(int i) : n(i) {}
};
struct A : B {
A(int i) {
// ...
}
};
but I get:
error: no matching function for call to ‘B::B()’
note: candidates are: B::B(int)
How would I fix this error?
The constructor should look like this:
The bit after the colon means, “initialize the B base class sub object of this object using its
intconstructor, with the value i”.I guess that you didn’t provide an initializer for B, and hence by default the compiler attempts to initialize it with the non-existent no-args constructor.