2013년 1월 13일 일요일

객체 선언시 구조체처럼 초기화 하기?


  1. using namespace std;
  2.  
  3. class Complex
  4. {
  5. public:
  6.  int real;
  7.  int image;
  8. public:
  9.        //Complex();
  10.  void init();
  11.  void show();
  12. };
  13.  
  14. void main()
  15. {
  16.  Complex x={2,5};//속성을 public 로 선언하면 구조체와 같은 방법으로 초기화 가능
  17.  x.show();
  18.  
  19.  _getch();
  20. }
  21.  
  22. void Complex::show()
  23. {
  24.  cout <
  25. }
  26.  
  27. void Complex::init()
  28. {
  29.  real = 2;
  30.  image =5;
  31. }


//소스 출처 : C++ 언어 30일 완성

//위 코드를 컴파일 하면 정상적으로 real,image가 초기화가 된다.
//그런데 명시적으로 생성자 함수를 작성할경우.....
//"이니셜라이저 목록을 사용하여 비집합체를 초기화할 수 없습니다."라는 오류가 난다.
//왜 그럴까.......?

댓글 1개:

  1. 디폴트 생성자를 정의 하지 않을경우 이니셜라이저 목목으로 초기화가 가능한것 인가?음....아마도 그런듯 ...

    답글삭제