//Функция
	ifstream file(filename);

	string str;
	smatch result;
	regex rx ("class\s+([^\s:]*)\s*:\s*(?:virtual)?\s+(?:public\s+|private\s+|protected\s+)?([^\s,]*)(?:\s*,\s*(?:virtual)?\s+(?:public\s+|private\s+|protected\s+)?([^\s,]*))*");
	
	while (!file.eof()) {
		getline(file, str);
		cout << str << endl << endl;
		while (regex_search(str, result, rx)) {
			for (auto x : result) std::cout << x << " ";
			std::cout << std::endl;
			str = result.suffix().str();
		}
	}



//.txt
class Parent: {};
class Child: virtual public Parent {};
class Child2: virtual public Parent {};
class Child3: virtual public Child, virtual public Child2 {};
class Child4: virtual public Child, virtual public Child6 {};
class Child5: virtual public Child {};
class Child6: virtual public Parent, virtual public Child3 {};
class Child7: virtual public Child3, virtual public Child {};