Foo 클래스에서 멤버 변수 bar가 있습니다. 바는 다음과 같이 배열에 대한 포인터를 전달하여 내 푸 생성자으로 구성되어있다 : T는 기본 생성자가있는 경우배열을 기본값으로 초기화하지 않습니다.
내 지식 이제template<typename> T
class Foo{
Bar myBar;
size_t mySize;
size_t top;
Foo(size):myBar(new T[size]),mySize(size),top(0){}; //creates a Bar element of certain size
}
template<typename> T
class Bar{
T* myListPtr;
Bar::Bar(T* tPtr):myListPtr(tPtr){} //stores a pointer to a T array
}
, C++ 배열의 모든 요소에서이 작업을 호출해야합니다. 그러나 지적되고있는 I 출력 값, 나는 ('두 배'크기 = 8, T 타입)이 같은 배열을 받았을 때
9.3218e-306
0
0
0
0
3.81522e-270
nan
nan
나는 모든 값이 초기화 기본 있는지 확인 할 방법 및 뿐만 아니라 일부. 이 배열은 char, double, 모든 유형을 보유 할 수 있지만 유형에는 항상 기본 생성자가 있습니다. 이 문제의 원인은 무엇입니까? 내 지식 이제
[MCVE] (http://stackoverflow.com/help/mcve)를 게시하십시오. – juanchopanza
포인터를 요소 배열에 복사 할 때 요소가 복사 된 이유는 무엇입니까? – Deduplicator
@Chris 음, 아니, 항상 그런 것은 아닙니다. 그리고 "C/C++"같은 것이 없으므로 그 신화가 퍼지기를 바랍니다. 건배. –