quá tải toán tử nhập, xuất (<>) trong file

  1. //chuong trinh thuc hien cac phep toan voi vector

  2.  

  3. #include<iostream>

  4. #include<cmath>

  5. #include<fstream>

  6.  

  7. using

    namespace

    std

    ;

  8.  

  9. //tao class vetor

  10. class

    VT

    {

  11.    

    private

    :

  12.        

    int

    n

    ;

    //so phep tinh thuc hien

  13.        

    double

    *

    a

    ;

  14.    

    public

    :

  15.        

    //ham tao khong doi

  16.         VT

    (

    )

  17.        

    {

  18.             this

    >

    n

    =

    0

    ;

  19.             this

    >

    a

    =

    NULL

    ;

  20.        

    }

  21.        

  22.        

    friend

    ostream

    &

    operator

    <<

    (

    ostream

    &

    os,

    const

    VT

    &

    v

    )

    ;

  23.        

    friend

    istream

    &

    operator

    >>

    (

    istream

    &

    is, VT

    &

    v

    )

    ;

  24.         VT

    operator

    +

    (

    const

    VT

    &

    v1

    )

    ;

  25.         VT operator

    (

    const

    VT

    &

    v1

    )

    ;

  26.         VT

    operator

    *

    (

    const

    VT

    &

    v1

    )

    ;

  27. }

    ;

  28.  

  29. //definition function

  30. //ham toan tu ghi file

  31. ostream

    &

    operator

    <<

    (

    ostream

    &

    os,

    const

    VT

    &

    v

    )

  32. {

  33.     os

    <<

    ” Cac he so cua vector la:”

    ;

  34.    

    for

    (

    int

    i

    =

    0

    ;

    i

    <

    v.

    n

    ;

    i

    ++

    )

    {

  35.         os

    <<

    ” “

    <<

    v.

    a

    [

    i

    ]

    ;

  36.    

    }

  37.    

    return

    os

    ;

  38. }

  39.  

  40. //ham toan tu doc file

  41. istream

    &

    operator

    >>

    (

    istream

    &

    is, VT

    &

    v

    )

  42. {

  43. cout

    <<

    \n

    So chieu cua vector la:”

    ;

  44. cin

    >>

    v.

    n

    ;

    v.

  45.     v.

    a

    =

    new

    double

    [

    v.

    n

    +

    1

    ]

    ;

  46. cout

    <<

    \n

    Nhap cac toa do cua vector:

    \n

    ;

  47.    

    for

    (

    int

    i

    =

    0

    ;

    i

    <

    v.

    n

    ;

    i

    ++

    )

    {

  48. cout

    <<

    “a[“

    <<

    i

    <<

     

    “]=”

    ;

  49.         is

    >>

    v.

    a

    [

    i

    ]

    ;

  50.    

    }

  51.    

    return

    is

    ;

  52. }

  53.  

  54. //ham toan tu cong hai vector

  55. VT VT

    ::

    operator

    +

    (

    const

    VT

    &

    v1

    )

  56. {

  57.     VT v

    ;

  58.    

    for

    (

    int

    i

    =

    0

    ;

    i

    <

    v1.

    n

    ;

    i

    ++

    )

    {

  59.         v.

    a

    [

    i

    ]

    =

    a

    [

    i

    ]

    +

    v1.

    a

    [

    i

    ]

    ;

  60.    

    }

  61.    

    return

    v

    ;

  62. }

  63.  

  64. //ham toan tu tru hai vector

  65. VT VT

    ::

    operator

    (

    const

    VT

    &

    v1

    )

  66. {

  67.     VT v

    ;

  68.    

    for

    (

    int

    i

    =

    0

    ;

    i

    <

    v1.

    n

    ;

    i

    ++

    )

    {

  69.         v.

    a

    [

    i

    ]

    =

    a

    [

    i

    ]

    v1.

    a

    [

    i

    ]

    ;

  70.    

    }

  71.    

    return

    v

    ;

  72. }

  73. //ham toan tu nhan hai vector

  74. VT VT

    ::

    operator

    *

    (

    const

    VT

    &

    v1

    )

  75. {

  76.     VT v

    ;

  77.    

    for

    (

    int

    i

    =

    0

    ;

    i

    <

    v1.

    n

    ;

    i

    ++

    )

    {

  78.         v.

    a

    [

    i

    ]

    =

    a

    [

    i

    ]

    *

    v1.

    a

    [

    i

    ]

    ;

  79.    

    }

  80.    

    return

    v

    ;

  81. }

  82. int

    main

    (

    )

  83. {

  84.     VT a,b,c,d,e

    ;

  85. cout

    <<

    \n

    Nhap vector a:

    \n

    ;

  86. cin

    >>

    a

    ;

  87.    

  88. cout

    <<

    \n

    Nhap vector b:

    \n

    ;

  89. cin

    >>

    b

    ;

  90.    

  91. cout

    <<

    \n

    vector a:

    \n

    <<

    a

    ;

  92. cout

    <<

    \n

    vector b:

    \n

    <<

    b

    ;

  93.     c

    =

    a

    +

    b

    ;

  94.     d

    =

    a

    b

    ;

  95.     e

    =

    a

    *

    b

    ;

  96. cout

    <<

    “VT Tong co toa do : “

    <<

    c

    <<

    \n

    ;

  97. cout

    <<

    “VT Hieu co toa do : “

    <<

    d

    <<

    \n

    ;

  98. cout

    <<

    “VT Tich vo huong co toa do : “

    <<

    e

    <<

    \n

    ;

  99.    

  100.    

  101.    

  102. cout

    <<

    endl

    ;

    endl

  103.     system

    (

    “pause”

    )

    ;

  104.    

    return

    0

    ;

  105.  

  106. }