게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++ 질문 하나만 드릴께요 ㅠㅠ
게시물ID : computer_84250짧은주소 복사하기
작성자 : 아라니나
추천 : 0
조회수 : 316회
댓글수 : 2개
등록시간 : 2013/04/12 00:42:31


#include <iostream>

#include <cstdlib>

 

using namespace std;

 

class myclass {

int *p;

public:

myclass(int i);

~myclass() { delet1 p;}

int getval(myclass &o);

};

 

myclass::myclass(int i)

{

p = new int ;

 

if (!p) {

cout << "error \n"

exit(1);

}

*p = i;

}

 

int myclass::getval(myclass &o)

{

return *o.p; // 값을얻는다

 

}

 

int main()

{

myclass a(1), b(2);

 

cout << a.getval(a) << " " << a.getval(b) << endl;

cout << b.getval(a) << " " << b.getval(b) << endl;

 

return 0;

}

 


이러한 코드에서 빨간색으로 칠한 객체 레퍼런스를 &를 빼고 그냥 객체로 넣으면 런타임 오류가 나는데 

그냥 객체는 왜 런타임 오류가 나고 객체레퍼런스는 정상 작동을 할까요 ???? 

그냥 객체를 넣으면 전에 가리키고 있는 값이 함수가 호출되면서 없어지게 되서 그런건가요 ???
그리고 객체레퍼런스로 넣으면 복사생성자 함수가 실행되나요 ?? 위에 코드에서는 복사생성함수를 따로 선언한건 없는거 같은데......

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호