Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: nạp chồng toán tử ++ +=

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    4

    Mặc định nạp chồng toán tử ++ +=

    chào các anh chị
    em mới học c# nạp chồng toán tử a + b hay a - b đều có 2 đối số khi lấy vào và hầu hết các sách đểu chỉ làm tới đây.
    còn về phần a+=b hay a++ thì không thấy nhắc đến.
    như trong phần bài tập về phân số.
    nếu ta muốn cộng phân số a thêm 1 hay a++
    và cộng phân số b vào phân số a hay a+=b
    thì e không thấy hướng dẫn.
    em cũng không biết làm thế nào nên mong các anh chị giúp đỡ.hướng dẫn giúp

  2. #2
    Ngày gia nhập
    09 2008
    Bài viết
    71

    Trích dẫn Nguyên bản được gửi bởi nguyenvu68 Xem bài viết
    chào các anh chị
    em mới học c# nạp chồng toán tử a + b hay a - b đều có 2 đối số khi lấy vào và hầu hết các sách đểu chỉ làm tới đây.
    còn về phần a+=b hay a++ thì không thấy nhắc đến.
    như trong phần bài tập về phân số.
    nếu ta muốn cộng phân số a thêm 1 hay a++
    và cộng phân số b vào phân số a hay a+=b
    thì e không thấy hướng dẫn.
    em cũng không biết làm thế nào nên mong các anh chị giúp đỡ.hướng dẫn giúp
    giải thích một chút nào :

    a+=b : có nghĩa là a=a+b cái này rất hay dùng khi muốn cộng dồn giá trị các biến.
    ví dụ :
    Code:
     int sum = 0;
                int[] intItems = new int[] {6, 8, 24, 84, 25 };
    
                for (int i = 0; i < intItems.Length; i++)
                {
                    int item = intItems[i];
                    sum += item;
                }
    a++ có nhiều loại nhé:
    a++, a--, --a, ++a.

    bạn nghiên cứu thêm về vòng lặp for, while, do - while nhé, cái này cơ bản mà.

  3. #3
    Ngày gia nhập
    04 2011
    Nơi ở
    Heaven
    Bài viết
    90

    Trích dẫn Nguyên bản được gửi bởi gauto988 Xem bài viết
    giải thích một chút nào :

    a+=b : có nghĩa là a=a+b cái này rất hay dùng khi muốn cộng dồn giá trị các biến.
    ví dụ :
    Code:
     int sum = 0;
                int[] intItems = new int[] {6, 8, 24, 84, 25 };
    
                for (int i = 0; i < intItems.Length; i++)
                {
                    int item = intItems[i];
                    sum += item;
                }
    a++ có nhiều loại nhé:
    a++, a--, --a, ++a.

    bạn nghiên cứu thêm về vòng lặp for, while, do - while nhé, cái này cơ bản mà.
    hình như bạn hiểu sai ý của chủ pic rồi, cái bạn làm thì quá đơn giản rồi, nó chỉ là một cái hàm tính cộng dồn thôi còn ý chủ pic là việc đa năng hóa toán tử ++ ,-- giống như trong C++ các operator
    I'll come back

  4. #4
    Ngày gia nhập
    09 2008
    Bài viết
    71

    ++ : là cộng thêm 1
    -- : là trừ đi cho 1.
    Ngoài ra mình chưa thấy đa năng hóa ? vậy bạn có cao kiến gì ko ?

  5. #5
    Ngày gia nhập
    04 2011
    Nơi ở
    Heaven
    Bài viết
    90

    Trích dẫn Nguyên bản được gửi bởi gauto988 Xem bài viết
    ++ : là cộng thêm 1
    -- : là trừ đi cho 1.
    Ngoài ra mình chưa thấy đa năng hóa ? vậy bạn có cao kiến gì ko ?
    ừ thì đúng là ++ là +1,-- là -1 nhưng không phải là viết hàm mà là đa năng hóa nó để sử dụng cho các đối tượng mà bạn tạo ra, còn việc ++,-- một số thì đã được overload từ trước rồi cần gì phải viết mấy cái hàm
    I'll come back

  6. #6
    Ngày gia nhập
    12 2010
    Bài viết
    4

    Mặc định nạp chồng toán tử ++ +=

    Trích dẫn Nguyên bản được gửi bởi stupid_genius Xem bài viết
    hình như bạn hiểu sai ý của chủ pic rồi, cái bạn làm thì quá đơn giản rồi, nó chỉ là một cái hàm tính cộng dồn thôi còn ý chủ pic là việc đa năng hóa toán tử ++ ,-- giống như trong C++ các operator
    đúng rồi đó.
    toán tử ++;--;+= ... như trong vi dụ về các phân số mình định nghĩa 1 lớp
    class Fraction
    {
    // khởi tạo
    public static bool operator ==(Fraction f1, Fraction f2)
    {
    if (f1.numerator == f2.numerator && f1.denominator == f2.denominator)
    {
    return true;
    }
    return false;
    }
    }

    để sự dụng toán tử == nhưng lại không thê làm tương tự như == với các toán tử ++ ,-- ,+=.. đươc.

  7. #7
    Ngày gia nhập
    09 2008
    Bài viết
    71

    Theo mình biết thì các toán tử : ++, -- được dành cho các kiểu số thực : int, double, short..Chứ các kiểu đối tượng mình định nghĩa ra không implement được các toán tử này.
    Mình vẫn chưa hiểu í bạn muốn nói ở đây ? bạn nói rõ hơn được chứ ?

  8. #8
    Ngày gia nhập
    12 2010
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi gauto988 Xem bài viết
    Theo mình biết thì các toán tử : ++, -- được dành cho các kiểu số thực : int, double, short..Chứ các kiểu đối tượng mình định nghĩa ra không implement được các toán tử này.
    Mình vẫn chưa hiểu í bạn muốn nói ở đây ? bạn nói rõ hơn được chứ ?
    để rỏ hơn vi như ta có 2 phân số a= 1/2, b = 1/4;
    khi xây dựng lớp hàm số ta có phương thức để cộng
    như thế này
    public static Fraction operator +(Fraction f1, Fraction f2) // calculation +
    {
    if (f1.denominator == f2.denominator)
    {
    return new Fraction(f1.numerator + f2.numerator, f1.denominator);
    }
    int firstProduct = f1.numerator * f2.denominator;
    int secondProduct = f2.numerator * f1.denominator;
    return new Fraction(firstProduct + secondProduct, f1.denominator * f2.denominator);
    }
    để tính a = a + b;
    nhưng nếu mình viết
    a += b; thì mình phải xây dựng lại phướng thức khác tuy nhiên đối với toán tử += thì lại không xây dựng tương tự nhưng toán tử + mình không biết phải làm thế nào để xây dựng dc toán tử += hay ++ , -- ...
    mong giúp đỡ

  9. #9
    Ngày gia nhập
    04 2011
    Nơi ở
    Heaven
    Bài viết
    90

    Trích dẫn Nguyên bản được gửi bởi nguyenvu68 Xem bài viết
    để rỏ hơn vi như ta có 2 phân số a= 1/2, b = 1/4;
    khi xây dựng lớp hàm số ta có phương thức để cộng
    như thế này
    public static Fraction operator +(Fraction f1, Fraction f2) // calculation +
    {
    if (f1.denominator == f2.denominator)
    {
    return new Fraction(f1.numerator + f2.numerator, f1.denominator);
    }
    int firstProduct = f1.numerator * f2.denominator;
    int secondProduct = f2.numerator * f1.denominator;
    return new Fraction(firstProduct + secondProduct, f1.denominator * f2.denominator);
    }
    để tính a = a + b;
    nhưng nếu mình viết
    a += b; thì mình phải xây dựng lại phướng thức khác tuy nhiên đối với toán tử += thì lại không xây dựng tương tự nhưng toán tử + mình không biết phải làm thế nào để xây dựng dc toán tử += hay ++ , -- ...
    mong giúp đỡ
    bạn show cái code của operator += hay ++ lên được không, để mình xem bạn viết thế nào
    I'll come back

  10. #10
    Ngày gia nhập
    12 2010
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi stupid_genius Xem bài viết
    bạn show cái code của operator += hay ++ lên được không, để mình xem bạn viết thế nào
    thì có gì đâu mình thay operator + bằng operator += thôi nhưng chương trình dịch báo lỗi không biên dịch được

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn