The code below works fine. You said something about a C1 default constructor related error. Could you please post the error message(s)?
Code:
#include <iostream>

using namespace std;

class C1
{ public: void boo() { cout << "C1::boo" << endl; } };

class C2 : virtual public C1
{};

class C3 : virtual public C1
{};

class C4 : public C2
{};

class C5 : public C3
{};

class C6 : public C2, public C3
{};

class C7 : public C4, public C5
{};

int main()
{
  C7().boo(); 
  return 0;
}
Regards,