, 그것은 클래스 Foo
회원으로 클래스 Bar
이있는 경우, 이제 scope
를 사용하여 스택에 즉D에서 개체가 내부적으로 구성원 개체를 보유 할 수 있습니까? D에서
void foo()
{
scope example = new Bar();
}
를 클래스를 할당하는 것이 가능, Foo
내부에서 적절한 Bar
를 저장하고있을 수있는 방법이있다 그것은 Foo
라 C++로 해체됩니까?
은 내가 메인이야
import std.stdio;
class Foo {
this() { writeln("Foo"); }
~this() { writeln("~Foo"); }
scope Bar inside;
}
class Bar {
this() { writeln("Bar"); }
~this() { writeln("~Bar"); }
};
void main()
{
scope f = new Foo();
writeln("I'm a main!");
}
바
푸
같은 것을 얻을 것이라고 기대했다!
~ 바
~ 푸
대신에 나는 단지 내가 메인이야
에게 푸
를 얻을!
~ 푸
그것은 가비지 수집 참조로 클래스 멤버를 저장하는 대신에 적절한 다만 불필요하게 작은 이익을 위해 힙 레이아웃을 복잡처럼 보인다. 이 경우 scope
은 무엇입니까? Bar
을 제자리에서 유지하도록 지정하지 않으면 어떻게됩니까?
그 말은하지 않는 것 같습니다. 나는 'scope bar inside'가 그 효과를 가지기를 기대했지만, 'Foo'의 멤버 인 Bar를 참조하는 것으로 보인다. 그 맥락에서'정적'은 무엇을 하는가? 내가 성취하려는 일을하는 방법이 있습니까? –