테스트 t [2]를 만들려고하면 아래 코드에서 컴파일 오류가 발생합니다. 에 대한 기본 생성자가 없기 때문입니다.C++ 배열 초기화
하지만 Test t[2] = {test(1,2), test(2,3)};
을 작성하면 올바르게 작동합니다.
1) 그러나 우리가 100 개 이상의 배열 요소를 만들고 싶다면 상황을 생각해보십시오. 우리는 다음과 같이 중괄호 안에 100 개의 요소를 만들어야합니다. Test t [100] = {test (1,2), test (1,2) ....../100 times /};
위의 코드는 유지하기가 어렵습니다. 두 가지 정수를 사용하고 루프에서 실행하는 공용 멤버 함수를 만드는 방법이 한 가지 더 있습니다. 이 문제를 해결하지만 다른 좋은 방법을 알고 싶습니다. 내가 만들 경우 새로운
Test *t = new test[10];
내가받을 컴파일 에러 (없음 기본 생성자)를 사용하여
2). 이 문제를 해결하는 방법.
class test
{
int _a;int _b;
public:
test(int a, int b);
void display();
};
int _tmain(int argc, _TCHAR* argv[])
{
test t[10];
for (int i = 0 ; i< 10; i++)
t[i].display();
}
배열은 기본 생성자를 통해서만 만들 수 있습니까? 다른 생성자로 배열을 생성 할 수 있습니까? – Naruto
아니요, 불가능합니다. 그걸 어떻게 써줄 수 있니? 이에 대한 구문은 없습니다. –
고마워, 테스트 t [2] = {테스트 (1,2), 테스트 (2,3)}; .. 우리는이 방법을 쓸 수 있지만 요소 수가 증가하면 유지하기가 어렵습니다. 그래서 다른 방법을 묻는 중입니까? – Naruto