Моя постановка проблемы следующая. Существует понятие «домен», которое состоит из множества «поддоменов». Теперь эти субдомены являются самостоятельными доменами. Ниже приведен основной метод, которым я могу заниматься. Я, вероятно, могу использовать auto_ptr или что-то еще, но давайте пока оставим это.
class Domain
{
private:
Domain* subdomains;
}
Однако я смог скомпилировать и запустить следующую программу, которая, как мне кажется, делает то же самое и дает мне то, что я хочу.
#include <iostream>
#include <vector>
#include <string>
class Domain
{
private:
std::string name_;
public:
std::vector<Domain> subdomains;
Domain(std::string name) : name_(name) {};
std::string name() {return name_;}
void addSubDomain(std::string subDomainName);
};
void Domain::addSubDomain(std::string subDomainName)
{
subdomain.push_back(Domain(subDomainName));
}
int main()
{
std::cout<<"Hello, World"<<std::endl;
Domain domain("wow");
domain.addSubDomain("wow-child");
std::cout<<"Domain name is "<<domain.name()<<std::endl;
std::cout<<"Subdomain name is "<<domain.subdomain[0].name()<<std::endl;
return 0;
}
Вывод, который я получаю при запуске, это
$./main
Hello, World
Domain name is wow
Subdomain name is wow-child
У меня вопрос: есть ли какие-нибудь подводные камни, которые я мог упустить при реализации следующего? Прямо сейчас я ничего не вижу. Если ловушек нет, то это действительно хорошее решение моих проблем.
EDIT
Если это не решение, то есть ли другое решение, которое я могу использовать, которое не связано с управлением необработанными указателями?