C++

[C++] 명품 C++ 프로그래밍 실습문제 7장 7번

Hs’s Coding vlog 2023. 1. 11. 21:46

[C++]명품 C++ 프로그래밍 실습문제 7장 7번

[C++]명품 C++ programming 실습문제 7장 7번

명품 C++ 프로그래밍실습문제/연습문제 /C++

//7-1
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>

using namespace std;
class Matrix{
    int matrix[100];
public:
    Matrix(int a=0,int b=0,int c=0,int d=0){
        matrix[0] = a;
        matrix[1] = b;
        matrix[2] = c;
        matrix[3] = d;
    }
    void operator>>(int *r){
        for(int i=0; i<4; i++){
             r[i]=this->matrix[i] ;
        }
    }
    void operator<<(int *r){
        for(int i=0; i<4; i++){
            this->matrix[i]= r[i];
        }
    }
    void show(){
   
        cout << "Matrix = { " ;
        for(int i=0 ; i<4; i++){
            cout << this->matrix[i] << " " ;
        }
        cout << "}" << endl;
    }
};


int main() {
    
    Matrix a(4,3,2,1),b;
    int x[4],y[4] = {1,2,3,4};
    a >> x; //a의 각원소를 배열 x 에 복사
    b << y;
    
    for(int i=0 ; i<4 ; i++) cout << x[i] << ' ' ;
    cout << endl;
    b.show();
  
    return 0;
}



//7-2
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>

using namespace std;
class Matrix{
    int matrix[100];
public:
    Matrix(int a=0,int b=0,int c=0,int d=0){
        matrix[0] = a;
        matrix[1] = b;
        matrix[2] = c;
        matrix[3] = d;
    }
    friend void operator>>(Matrix &l ,int *r); //멤버함수로 설정해서 보기
    friend void operator<<(Matrix &l ,int *r);
    void show(){
   
        cout << "Matrix = { " ;
        for(int i=0 ; i<4; i++){
            cout << this->matrix[i] << " " ;
        }
        cout << "}" << endl;
    }
};

void operator>>(Matrix &l ,int *r){
    for(int i=0; i<4; i++){
        r[i] = l.matrix[i];
    }
}

void operator<<(Matrix &l ,int *r){
    for(int i=0; i<4; i++){
        l.matrix[i] = r[i] ;
    }
}

int main() {
    
    Matrix a(4,3,2,1),b;
    int x[4],y[4] = {1,2,3,4};
    a >> x; //a의 각원소를 배열 x 에 복사
    b << y;
    
    for(int i=0 ; i<4 ; i++) cout << x[i] << ' ' ;
    cout << endl;
    b.show();
  
    return 0;
}