2013-02-20 1 views
1

기본 생성자를 사용해도 여전히 오류가 있습니다. 내가 전화오류 C2512 : '바둑판 식 배열': 적절한 기본 생성자가 없습니다.

class Foo { 
    public: 
    Foo (int x, int y, int type); 
} 

그리고 .cpp 파일

Foo::Foo (int x = 0, int y = 0, int type = 0) { 

그럼에도 불구하고의

Foo foo_array[5][5]; 

나는 오류가 발생합니다. 그 이유는 무엇일까요?

+2

참조 : 원시 배열 대신에'std :: vector'를 사용하면 다음 코드를 사용하십시오 : http://stackoverflow.com/questions/13713916/am-i-using-default-arguments-incorrectly/13713944#13713944 – billz

+1

는 불필요한 (아마도별로 의미가없는) 기본 생성자를 가질 필요가 없도록 기본값을 지정할 수 있습니다. –

답변

6

생성자의 선언 에 기본 인수를 넣습니다. 그대로, 컴파일러는 배열을 만들려고 할 때 알지 못합니다.

+0

배열로 어떻게 할 수 있습니까? 네가 할 수 없다고 생각 했어. –

+1

@JimHurley 배열에 아무 것도 할 필요가 없습니다. 생성자의 선언을 변경하십시오. –

+0

죄송합니다.하지만 어떻게 할 수 있습니까? 나는 ctor가 내가 그것을하고있는 곳이라고 생각했다. –