복사 생성자

    함수의 설계와 객체의 복사

    함수의 설계와 객체의 복사

    전 책에서 이 부분을 좋아합니다. 왜냐하면 이 책을 읽지 않았더라면 평생 모르고 생각하지도 않고 살았을 테니까요. 같은 기능의 함수라도 매개변수와 반환형을 다르게 할 수 있고 그거에 따른 복사 생성자와 대입 연산자 사용 횟수를 저는 절대 생각하고 깨닫지 못했을 거니까요. φ(◎ロ◎;)φ 여기 Complex 클래스가 정의돼있습니다. class Complex { double real, imag; // 복소수의 실수부와 허수부 public: Complex(double r = 0, double i = 0) : real(r), imag(i) { } //... }; void main() { Complex a(1,2), b(3,4), c; } 복소수 객체 a와 b를 더해 c에 저장하려고 합니다. 물론 계산 후 a와 ..

    객체의 복사와 복사 생성자

    객체의 복사와 복사 생성자

    같은 자료형의 변수들을 복사하는 것과 같이 객체도 서로 복사할 수 있습니다. 바로 대입연산자(=)와 복사생성자 두 가지의 이유로 복사할 수 있습니다. 대입연산자 이용 Point p(2,3), q; q = p; 복사생성자 이용 printPoint함수에서 매개변수로 객체를 전달하는 과정에 Point a가 p로 복사 생성자를 이용하여 객체 복사 readPoint함수에서 Point p 함수를 반환하면서 복사 생성자를 이용하여 객체 복사 #include using namespace std; struct Point { int x, y; Point(int xx = 0, int yy = 0) : x(xx), y(yy) { } }; Point readPoint() { Point p; cout > p.x >> p.y; r..