проблема с переопределением класса и общей иерархией между классами
#include <iostream>
#include <string>
#include <filesystem>
#include <memory>
#include <ctime>
#include <vector>
void search(const std::string& Path)
{
for (auto file : std::filesystem::directory_iterator(Path))
{
if (std::filesystem::is_directory(file))
{
continue;
}
std::cout << file.path().string()<<std::endl;
}
}
class folder {
public:
void Redact();
void Delete();
};
class User
{};
class PrivateUser :User {
std::shared_ptr<folder> F;
public:
void Privateredact()
{
F->Redact();
}
void PrivateDelete();
};
void Scan() {}
class folder
{
std::string Name;
std::string Path;
PrivateUser Privating;
public:
void Redact();
void Delete();
};
ошибка:folder: переопределение типа "class"
int main(){} как мне сделать так, что бы в классе folder было поле типа PrivateUser, но при этом в классе PrivateUser можно было использовать методы класса Folder(идея в том, что бы у папки был свой "User"/владелец, и только он может изменять, удалять и перемещать папку)
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Так устроит?
class folder;
class PrivateUser :User {
std::shared_ptr<folder> F;
public:
void Privateredact();
void PrivateDelete();
};
void Scan() {}
class folder
{
std::string Name;
std::string Path;
PrivateUser Privating;
public:
void Redact();
void Delete();
};
inline void PrivateUser::Privateredact()
{
F->Redact();
}