classA {}; classB {}; class Test { struct SomeStruct { ClassA var1; ClassB var2; }; SomeStruct test1; // once test1 is used within this function my debugger will report that var1 and var2 within test1 are 'incomplete types' void SomeFunc(); };