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

Đề tài: Vector stl và copy constructor

  1. #1
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    663

    Mặc định Vector stl và copy constructor

    Tôi có đoạn code sau
    C++ Code:
    1. #include <iostream>
    2. #include <vector>
    3. using namespace std;
    4. vector<int> returnVector(vector<int> vec)
    5. {
    6.     cout << &vec[0] << endl;
    7.     return vec;
    8. }
    9. int main()
    10. {
    11.     vector<int> vec  {1,2,3};
    12.     cout << &vec[0] << endl;
    13.     cout << &returnVector(vec)[0] << endl;
    14. }
    15. /*kết quả là
    16. 0x742542a000
    17. 0x742542a5b0
    18. 0x742542a5b0
    19.  
    20. [Program finished]*/
    Tại sao 2 cái đầu khác nhau trong khi 2 cái sau lại giống nhau???

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    663

    Ú ù, có ai không???

  3. #3
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    663

    Lúc gọi returnVector, tham số được copy, lúc return, giá trị return cũng được copy. Thế nhưng, 2 địa chỉ đầu khác nhau, 2 địa chỉ sau giống nhau.Chẳng lẽ có tới 2 copy constructor?

  4. #4
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    663

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Lúc gọi returnVector, tham số được copy, lúc return, giá trị return cũng được copy. Thế nhưng, 2 địa chỉ đầu khác nhau, 2 địa chỉ sau giống nhau.Chẳng lẽ có tới 2 copy constructor?
    Biết rồi. Khi return, move constructor được chọn.

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