Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Điều kiện cần thiết để đoạn code C++ hoạt động?

  1. #1
    Ngày gia nhập
    06 2011
    Bài viết
    11

    Mặc định Điều kiện cần thiết để đoạn code C++ hoạt động?

    Hi cả nhà, mình có câu hỏi bài tập C++ này khoai quá, đành phải nhờ cao kiến của anh em zậy
    C++ Code:
    1. //43. What are the conditions which have to be accomplished in order for this code to work ? Why ?
    2. cObject CreateObject()
    3. {
    4. cObject t;
    5. return t;
    6. }
    Và một câu khác tương tự, cũng khoai không kém
    C+ Code:
    1. //45. What is the problem with this code ? Please explain:
    2. cObject * CreateObject()
    3. {
    4.     cObject t;
    5.     return &t;
    6. }
    Tks cả nhà.

  2. #2
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    Biến ở đây là một đối tượng nên khi khai báo các thành phần dữ liệu ta có các hàm tạo
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Anh mạn phép trả lời nha
    Code 1:
    Nểu trong cObject có thành phần là con trỏ hoặc tham chiếu thì nên có một hàm tạo sao chép.

    Code 2:
    Vấn đề là code đó trả về một địa chỉ biến cục bộ. mà biến này được giải phóng khi ra khỏi hàm.

  4. #4
    Ngày gia nhập
    03 2010
    Nơi ở
    Nơi nào đó trong vũ trụ
    Bài viết
    550

    Vấn đề 1: Có phải nên hiểu như thế này không nhỉ: Điều kiện nào cho đoạn code này biên dịch không bị lỗi.
    Nếu mà hiểu như vậy thì class cObject phải tồn tại, cObject phải có hàm tạo không đối. :|
    Gió thu lạnh lẽo hắt hiu lòng!

  5. #5
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Trích dẫn Nguyên bản được gửi bởi lavaalone Xem bài viết
    Hi cả nhà, mình có câu hỏi bài tập C++ này khoai quá, đành phải nhờ cao kiến của anh em zậy
    C++ Code:
    1. //43. What are the conditions which have to be accomplished in order for this code to work ? Why ?
    2. cObject CreateObject()
    3. {
    4. cObject t;
    5. return t;
    6. }
    Và một câu khác tương tự, cũng khoai không kém
    C+ Code:
    1. //45. What is the problem with this code ? Please explain:
    2. cObject * CreateObject()
    3. {
    4.     cObject t;
    5.     return &t;
    6. }
    Tks cả nhà.
    Câu 1: Điều kiện là cObject có default constructor (hàm tạo không đối số) cObject::cObject() - dù là người dùng định nghĩa hay trình dịch tự sinh (implicit default constructor). Trình dịch sẽ tự sinh default constructor nếu không có constructor nào được định nghĩa và các member data của class cObject có thể default-initialize được.
    - Chú ý: Các compiler mà mình biết không sử dụng copy-constructor cho trường hợp này, kể cả ở chế độ debug mode - không tối ưu hóa code

    Câu 2 xin copy lại:
    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    Code 2:
    Vấn đề là code đó trả về một địa chỉ biến cục bộ. mà biến này được giải phóng khi ra khỏi hàm.

  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Mặc định Điều kiện cần thiết để đoạn code C++ hoạt động?

    Trích dẫn Nguyên bản được gửi bởi fbchicken Xem bài viết
    Câu 1: Điều kiện là cObject có default constructor (hàm tạo không đối số) cObject::cObject() - dù là người dùng định nghĩa hay trình dịch tự sinh (implicit default constructor). Trình dịch sẽ tự sinh default constructor nếu không có constructor nào được định nghĩa và các member data của class cObject có thể default-initialize được.

    Híc, học nhiều quá

  7. #7
    Ngày gia nhập
    06 2011
    Bài viết
    11

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    Anh mạn phép trả lời nha
    Code 1:
    Nểu trong cObject có thành phần là con trỏ hoặc tham chiếu thì nên có một hàm tạo sao chép.

    Code 2:
    Vấn đề là code đó trả về một địa chỉ biến cục bộ. mà biến này được giải phóng khi ra khỏi hàm.
    Cám ơn anh, ngắn gọn hiệu quả dễ hiểu
    Nguyên bản được gửi bởi fbchicken Xem bài viết
    Câu 1: Điều kiện là cObject có default constructor (hàm tạo không đối số) cObject::cObject() - dù là người dùng định nghĩa hay trình dịch tự sinh (implicit default constructor). Trình dịch sẽ tự sinh default constructor nếu không có constructor nào được định nghĩa và các member data của class cObject có thể default-initialize được.
    Bạn ơi có thể vui lòng giải thích cho mình thêm chỗ này xíu đc ko ?
    Theo mình nghĩ thì chỉ cần đơn giản là có thêm một function sao chép t để sử dụng, tránh việc sử dụng chính t gây ra lỗi. Nếu theo giải thích của bạn thì phải thêm code như thế nào nhỉ ? Tks bạn nhìu.

  8. #8
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Trích dẫn Nguyên bản được gửi bởi lavaalone Xem bài viết
    Bạn ơi có thể vui lòng giải thích cho mình thêm chỗ này xíu đc ko ?
    Theo mình nghĩ thì chỉ cần đơn giản là có thêm một function sao chép t để sử dụng, tránh việc sử dụng chính t gây ra lỗi. Nếu theo giải thích của bạn thì phải thêm code như thế nào nhỉ ? Tks bạn nhìu.
    Thế này, khi ta xây dựng hàm tạo có đối thì thường TDịch không sử dụng hàm tạo mặc định nữa. Nên muốn dùng như vậy phải xây dựng hàm tạo không đối.

  9. #9
    Ngày gia nhập
    06 2011
    Bài viết
    11

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    Thế này, khi ta xây dựng hàm tạo có đối thì thường TDịch không sử dụng hàm tạo mặc định nữa. Nên muốn dùng như vậy phải xây dựng hàm tạo không đối.
    tks anh. cũng may có anh trả lời. hôm nay đi thi ra đúng 2 câu này. thế là ngon lành.

Các đề tài tương tự

  1. Miễn phí dùng thử thiết bị phát WiFi cắm SIM hoặc USB 3G
    Gửi bởi an.cntt trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 11
    Bài viết cuối: 18-07-2013, 10:08 AM
  2. Xin code bài tập qui hoạch động
    Gửi bởi vothanhsong trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 11-04-2013, 12:05 PM
  3. Thiết kế logo cho công ty hoạt động lĩnh vực vận tải biển
    Gửi bởi thekey trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 10-05-2012, 03:02 PM
  4. Trả lời: 5
    Bài viết cuối: 27-04-2012, 07:51 PM
  5. Cách hoạt động của đoạn code boggle như thế nào?
    Gửi bởi ryan1612 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 24-04-2011, 01:18 AM

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