C++ 초기화 할때..
글쓴이: hwandori / 작성시간: 금, 2004/09/03 - 4:41오후
C++ 초보라 잘 몰라서 질문드립니다.
class Test { private: int a; int b; int c; int* array[3]; }
이런식으로 구성된 클래스에서 array를 &a , &b , &c로 초기화 할때
array[0] = &a;
array[1] = &b;
array[2] = &c;
말고, array[] = { &a , &b , &c };
로 초기화 하는 방법은 없나요?
클래스 선언에 초기화는 안되서 어떻게 해야할지..
실제로 저 배열의 수가 많기 떄문에 초기화가 간단했으면 좋겠거든요...
답변 부탁드립니다ㅏ.
Forums:
C나 C++은 array를 정의와 동시에 초기화 하는 경우에는 상수만 가
C나 C++은 array를 정의와 동시에 초기화 하는 경우에는 상수만 가능합니다.
천상 define 문으로 code size를 줄이거나 아니면 아니면 좋지 않은 방법이지만 pointer로 초기화 하는 수밖에는 없는 것 같네요..
좋지는 않은 방법이네요.
#include <iostream>using names
#include <iostream>
using namespace std;
#define MAX 100
class Test {
class Array {
public:
int m;
int* p;
Array() : p(&m) {}
};
public:
Array array[MAX];
};
int main() {
Test obj;
obj.array[0].m = 5;
cout << *obj.array[0].p << endl;
return 0;
}
[quote="aqwerf"]C나 C++은 array를 정의와 동시에 초
C는 어떤지 모르지만 C++은 그렇지 않습니다.
클래스 생성자를 통한 초기화도 함수 호출을 통한 초기화라고 볼 수 있죠.
배열을 { } 형태로 초기화할 때도 마찬가지입니다.
int* f();
int* p[] = { new int, f() };
처럼 쓸 수 있습니다.
댓글 달기