필드로 바라는 다른 클래스가있는 Foo라는 클래스가 있습니다. 막대에는 인수가있는 생성자 만 있습니다. Bar에 대한 인수가있는 생성자를 어떻게 선택합니까 (Bar 대신 Bar *를 저장하지 않고 new를 호출하지 않고)?클래스 개체 필드의 생성자 선택
Foo.h
class Foo
{
private:
Bar bar;
};
Bar.h
class Bar
{
public:
Bar(int arbitraryArg);
};
foo.cpp에
Foo::Foo()
: bar(bar(1))
{}
나는 그것이 일반적으로 좋지 않다 듣고 있기 때문에 위의 작업을 수행 할 메모리 관리를 피하기 위해 절대적으로 필요한 경우가 아니라면 포인터를 필드로 저장하십시오. 따라서 다음과 같은 것을 피하십시오.
Foo.h
class Foo
{
private:
Bar* bar;
public:
Foo();
}
foo.cpp에
Foo::Foo()
: bar(NULL)
{
bar = new Bar(1);
}
처음이었고, 그 일 이후 나는이 대답을 받아들이는거야. 이것은 또한 그것을하는 아주 멋진 속기 방법입니다. – brandonto