Is there any way to set both c[0] and c[1] to 0 in the constructor initialiser list (like a(): b(0), c(0,0) { } or something), or must I initialise arrays in the main body?
Yes, I would usually use a vector, but in this case I specifically need only 2 items, with very basic access (i.e., c[0] and c[1]). It just seems a little overkill to use a vector.
Well, in that case... I don't think you can. I'm not 100% sure though (the actual pointer operation should be illegal).
Edit: looked it up. You can't - an initializer-list consists of ','-seperated initializer-clauses, which are either { initializer-list }s or assignment expressions, which are: