1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#include <iostream>

using namespace std;

 

class Circle {

    int radius;

public:

    Circle(int radius = 0) {

        this->radius = radius;

    }

    void show() { cout << "radius = " << radius << "인 원" << endl; }

    friend Circle operator+(int op, Circle op2);

};

Circle operator+(int op, Circle op2) {

    Circle tmp;

    tmp.radius = op + op2.radius;

    return tmp;

}

 

int main() {

    Circle a(5), b(4);

    b = 1 + a;

    a.show();

    b.show();

}

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 8장 실습문제 6번  (0) 2019.06.10
명품 c++ 8장 실습문제 5번  (0) 2019.06.10
명품 c++ 7장 실습문제 8번  (0) 2019.06.06
명품 c++ 7장 실습문제 6번  (0) 2019.06.06
명품 c++ 7장 실습문제 5번  (0) 2019.06.06

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

#include <iostream>

using namespace std;

 

class Circle {

    int radius;

public:

    Circle(int radius = 0) { this->radius = radius; }

    void show() { cout << "radius = " << radius << " 인 원" << endl; }

    friend Circle& operator++(Circle& op1);

    friend Circle operator++(Circle op1, int x);

};

 

Circle& operator++(Circle& op1) {

    op1.radius++;

    return op1;

}

 

Circle operator++(Circle op1, int x) {        // 후위 연산자 구별 위해 int x

    Circle tmp = op1;

    op1.radius++;

    return tmp;

}

 

 

int main() {

    Circle a(5), b(4);

    ++a;

    b = a++;

    a.show();

    b.show();

}

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 8장 실습문제 5번  (0) 2019.06.10
명품 c++ 7장 실습문제 9번  (0) 2019.06.06
명품 c++ 7장 실습문제 6번  (0) 2019.06.06
명품 c++ 7장 실습문제 5번  (0) 2019.06.06
명품 c++ 7장 실습문제 4번  (0) 2019.06.06

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

#include <iostream>

using namespace std;

 

// 맴버로 구현

class Matrix {

    int a, b, c, d;

public:

    Matrix(int a=0int b=0int c=0int d=0) {

        this->= a;

        this->= b;

        this->= c;

        this->= d;

    }

    void show() { cout << "Matrix = {" << this-><< ',' << this-><< ','<<this-><< ',' << this-><< "}"<< endl; }

    Matrix operator+(Matrix op2);

    Matrix& operator+=(Matrix op2);

    bool operator==(Matrix op2);

};

Matrix Matrix::operator+(Matrix op2) {

    Matrix tmp;

    tmp.a = a + op2.a;

    tmp.b = b + op2.b;

    tmp.c = c + op2.c;

    tmp.d = d + op2.d;

    return tmp;

}

Matrix& Matrix::operator+=(Matrix op2) {

    a = a + op2.a;

    b = b + op2.b;

    c = c + op2.c;

    d = d + op2.d;

    return *this;

}

bool Matrix::operator==(Matrix op2) {

    if (a == op2.a && b == op2.b && c == op2.c) return true;

    else return false;

}

 

int main() {

    Matrix a(1234), b(2345), c;

    c = a + b;

    a += b;

    a.show(); b.show(); c.show();

    if (a == c)

        cout << "a and c are the same" << endl;

}

 

 

 

 

 

#include <iostream>

using namespace std;

 

// friend 로 구현

class Matrix {

    int a, b, c, d;

public:

    Matrix(int a=0int b=0int c=0int d=0) {

        this->= a;

        this->= b;

        this->= c;

        this->= d;

    }

    void show() { cout << "Matrix = {" << this-><< ',' << this-><< ','<<this-><< ',' << this-><< "}"<< endl; }

    friend Matrix operator+(Matrix op1, Matrix op2);

    friend Matrix& operator+=(Matrix& op1,Matrix op2);

    friend bool operator==(Matrix op1, Matrix op2);

};

Matrix operator+(Matrix op1, Matrix op2) {

    Matrix tmp;

    tmp.a = op1.a + op2.a;

    tmp.b = op1.b + op2.b;

    tmp.c = op1.c + op2.c;

    tmp.d = op1.d + op2.d;

    return tmp;

}

Matrix& operator+=(Matrix& op1,Matrix op2) {

    op1.a = op1.a + op2.a;

    op1.b = op1.b + op2.b;

    op1.c = op1.c + op2.c;

    op1.d = op1.d + op2.d;

    return op1;

}

bool operator==(Matrix op1,Matrix op2) {

    if (op1.a == op2.a && op1.b == op2.b && op1.c == op2.c) return true;

    else return false;

}

 

int main() {

    Matrix a(1234), b(2345), c;

    c = a + b;

    a += b;

    a.show(); b.show(); c.show();

    if (a == c)

        cout << "a and c are the same" << endl;

}

 

 

 

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 7장 실습문제 9번  (0) 2019.06.06
명품 c++ 7장 실습문제 8번  (0) 2019.06.06
명품 c++ 7장 실습문제 5번  (0) 2019.06.06
명품 c++ 7장 실습문제 4번  (0) 2019.06.06
명품 c++ 7장 실습문제 3번  (0) 2019.06.06

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

#include <iostream>

using namespace std;

 

class Color {

    int red, green, blue;

public:

    Color(int red = 0int green = 0int blue = 0) {

        this->red = red;

        this->green = green;

        this->blue = blue;

    }

    void show();

    Color operator+(Color op2);

    bool operator==(Color op2);

};

void Color::show() {

    cout << "Red: " << this->red << " Green: " << this->green << " Blue: " << this->blue << endl;

}

 

Color Color::operator+(Color op2) {

    Color tmp;

    tmp.blue = this->blue + op2.blue;

    tmp.red = this->red + op2.red;

    tmp.green = this->green + op2.green;

    return tmp;

}

 

bool Color::operator==(Color op2) {

    if (this->red == op2.red && this->green == op2.green && this->blue == op2.blue) return true;

    else return false;

}

 

int main() {

    Color red(25500), blue(00255), c;

    c = red + blue;

    c.show();

 

    Color fuchsia(2550255);

    if (c == fuchsia)

        cout << "보라색 맞음";

    else

        cout << "보라색 아님";

}

 

 

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 7장 실습문제 8번  (0) 2019.06.06
명품 c++ 7장 실습문제 6번  (0) 2019.06.06
명품 c++ 7장 실습문제 4번  (0) 2019.06.06
명품 c++ 7장 실습문제 3번  (0) 2019.06.06
명품 c++ 7장 실습문제 2번  (0) 2019.06.05

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

#include <iostream>

#include <string>

using namespace std;

 

class Book {

    string title;

    int price, pages;

public:

    Book(string title = ""int price = 0int pages = 0) {

        this->title = title;

        this->price = price;

        this->pages = pages;

    }

    void show() {

        cout << title << ' ' << price << "원" << pages << " 페이지" << endl;

    }

    string getTitle() { return title; }

    friend bool operator<(string op1,Book op2);

};

bool operator<(string op1, Book op2) {

    if (op2.getTitle().compare(op1) > 0return true// string 라이브러리 compare

    else false;

}

 

int main() {

    Book a("청춘"20000300);

    string b;

    cout << "책 이름을 입력하세요>>";

    getline(cin,b);

    if (b < a)

        cout << a.getTitle() << "이 " << b << "보다 뒤에 있구나!" << endl;

}

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 7장 실습문제 6번  (0) 2019.06.06
명품 c++ 7장 실습문제 5번  (0) 2019.06.06
명품 c++ 7장 실습문제 3번  (0) 2019.06.06
명품 c++ 7장 실습문제 2번  (0) 2019.06.05
명품 c++ 7장 실습문제 1번(2)  (0) 2019.06.05

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#include <iostream>

#include <string>

using namespace std;

 

class Book {

    string title;

    int price, pages;

public:

    Book(string title = ""int price = 0int pages = 0) {

        this->title = title;

        this->price = price;

        this->pages = pages;

    }

    void show() {

        cout << title << ' ' << price << "원" << pages << " 페이지" << endl;

    }

    string getTitle() { return title; }

    bool operator!();

};

bool Book::operator!(){

    if (this->price == 0)return true;

    else return false;

}

 

int main() {

    Book book("벼룩시장"050);

    if (!book) cout << "공짜다" << endl;

}

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 7장 실습문제 5번  (0) 2019.06.06
명품 c++ 7장 실습문제 4번  (0) 2019.06.06
명품 c++ 7장 실습문제 2번  (0) 2019.06.05
명품 c++ 7장 실습문제 1번(2)  (0) 2019.06.05
명품 c++ 7장 실습문제 1번(1)  (0) 2019.06.05

(1)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

#include <iostream>

#include <string>

using namespace std;

 

class Book {

    string title;

    int price, pages;

public:

    Book(string title = ""int price = 0int pages = 0) {

        this->title = title;

        this->price = price;

        this->pages = pages;

    }

    void show() {

        cout << title << ' ' << price << "원" << pages << " 페이지" << endl;

 }

    string getTitle() { return title; }

    bool operator ==(int op);        // price

    bool operator ==(string op);    // title

    bool operator ==(Book op1);        // price title pages 비교

};

bool Book::operator ==(int op) {

    if (this->price == op) return true;

    else return false;

    

}

bool Book::operator ==(string op) {

    if (this->title == op) return true;

    else return false;

}

bool Book::operator ==(Book op1) {

    if (this->title == op1.title && this->pages == op1.pages && this->price == op1.price) return true;

    else return false;

}

 

int main() {

    Book a("명품 c++"30000500), b("고품 c++"30000500);

    if (a == 30000cout << "정가 30000원" << endl;

    if (a == "명품 c++"cout << "명품 c++ 입니다." << endl;

    if (a == b) cout << "두 책이 같은 책입니다." << endl;

}

Colored by Color Scripter

cs

(2)

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

#include <iostream>

#include <string>

using namespace std;

 

class Book {

    string title;

    int price, pages;

public:

    Book(string title = ""int price = 0int pages = 0) {

        this->title = title;

        this->price = price;

        this->pages = pages;

    }

    void show() {

        cout << title << ' ' << price << "원" << pages << " 페이지" << endl;

 }

    string getTitle() { return title; }

    friend bool operator ==(Book op1,int op2);        // price

    friend bool operator ==(Book op1,string op2);    // title

    friend bool operator ==(Book op1, Book op2);        // price title pages 비교

};

bool operator ==(Book op1,int op2) {

    if (op1.price == op2) return true;

    else return false;

    

}

bool operator ==(Book op1,string op2) {

    if (op1.title == op2) return true;

    else return false;

}

bool operator ==(Book op1, Book op2) {

    if (op1.title == op2.title && op1.pages == op2.pages && op1.price == op2.price) return true;

    else return false;

}

 

int main() {

    Book a("명품 c++"30000500), b("고품 c++"30000500);

    if (a == 30000cout << "정가 30000원" << endl;

    if (a == "명품 c++"cout << "명품 c++ 입니다." << endl;

    if (a == b) cout << "두 책이 같은 책입니다." << endl;

}

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 7장 실습문제 4번  (0) 2019.06.06
명품 c++ 7장 실습문제 3번  (0) 2019.06.06
명품 c++ 7장 실습문제 1번(2)  (0) 2019.06.05
명품 c++ 7장 실습문제 1번(1)  (0) 2019.06.05
명품 C++ 8장 실습문제 4번  (0) 2019.06.01

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#include <iostream>

#include <string>

using namespace std;

 

class Book {

    string title;

    int price, pages;

public:

    Book(string title = ""int price = 0int pages = 0) {

        this->title = title;

        this->price = price;

        this->pages = pages;

    }

    void show() {

        cout << title << ' ' << price << "원" << pages << " 페이지" << endl;

 }

    string getTitle() { return title; }

    friend Book operator+=(Book& op1,int op2);

    friend Book operator-=(Book& op1,int op2);

};

Book operator+=(Book& op1,int op2) {

    op1.price += op2;

    return op1;

}

Book operator-=(Book& op1,int op2) {

    op1.price -= op2;

    return op1;

}

int main() {

    Book a("청춘"20000300), b("미래"30000500);

    a += 500;

    b -= 500;

    a.show();

    b.show();

}

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 7장 실습문제 3번  (0) 2019.06.06
명품 c++ 7장 실습문제 2번  (0) 2019.06.05
명품 c++ 7장 실습문제 1번(1)  (0) 2019.06.05
명품 C++ 8장 실습문제 4번  (0) 2019.06.01
명품 C++ 8장 실습문제 3번  (0) 2019.06.01

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#include <iostream>

#include <string>

using namespace std;

 

class Book {

    string title;

    int price, pages;

public:

    Book(string title = ""int price = 0int pages = 0) {

        this->title = title;

        this->price = price;

        this->pages = pages;

    }

    void show() {

        cout << title << ' ' << price << "원" << pages << " 페이지" << endl;

 }

    string getTitle() { return title; }

    Book& operator+=(int op);

    Book& operator-=(int op);

};

Book& Book::operator+=(int op) {

    this->price += op;

    return *this;

}

Book& Book::operator-=(int op) {

    this->price -= op;

    return *this;

}

int main() {

    Book a("청춘"20000300), b("미래"30000500);

    a += 500;

    b -= 500;

    a.show();

    b.show();

}

Colored by Color Scripter

cs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'C++' 카테고리의 다른 글

명품 c++ 7장 실습문제 2번  (0) 2019.06.05
명품 c++ 7장 실습문제 1번(2)  (0) 2019.06.05
명품 C++ 8장 실습문제 4번  (0) 2019.06.01
명품 C++ 8장 실습문제 3번  (0) 2019.06.01
명품 C++ 8장 실습문제 1~2번  (0) 2019.06.01

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

#include <iostream>

#include <string>

using namespace std;

 

class Point {

    int x, y;

public:

    Point(int x, int y) { this->x = x; this->y = y; }

    int getx() { return x; }

    int gety() { return y; }

protected:

    void move(int x, int y) { this->x = x; this->y = y; }

};

 

class ColorPoint : public Point {

    string color;

public:

    ColorPoint(int x=0, int y=0, string color="BLACK") :Point(x, y) {        // default 기본생성자 생성

        this->color = color;

    }

    void setPoint(int x, int y) {

        this->move(x, y);            // Point 에서 move 가 protected 니까 ColorPoint 에서도 접근 가능함

    }

    void setColor(string color) {

        this->color = color;

    }

    void show() {

        cout << this->color << "색으로 (" << this->getx()<<","<< this->gety()<< ")" << "에 위치한 점입니다."<<endl;

    }

};

int main() {

    ColorPoint zeroPoint;

    zeroPoint.show();

 

    ColorPoint cp(5, 5);

    cp.setPoint(10, 20);

    cp.setColor("BLUE");

    cp.show();

}

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 7장 실습문제 2번  (0) 2019.06.05
명품 c++ 7장 실습문제 1번(2)  (0) 2019.06.05
명품 c++ 7장 실습문제 1번(1)  (0) 2019.06.05
명품 C++ 8장 실습문제 3번  (0) 2019.06.01
명품 C++ 8장 실습문제 1~2번  (0) 2019.06.01

+ Recent posts