Shallow copy là gì?

Noun Programming
memberwise copy

Trong shallow copy, một đối tượng (object) được tạo ra bằng cách sao chép dữ liệu của tất cả các biến (variable) của đối tượng gốc. Điều này hoạt động tốt nếu không có biến nào của đối tượng được định nghĩa trong phần heap của bộ nhớ. Nếu một số biến được định nghĩa trong bộ nhớ heap (tức là biến thuộc kiểu dữ liệu tham chiếu (reference type )), thì biến của đối tượng được sao chép cũng sẽ tham chiếu cùng một vị trí bộ nhớ (memory location).

Lưu ý: Trình biên dịch của C ++ ngầm tạo một phương thức khởi tạo sao chép (copy constructor) và nạp chồng (overload) toán tử gán (assignment operator) để thực hiện shallow copy thời điểm biên dịch (compile time).

Xem ví dụ code bên dưới trong C++:


// C++ program for the above approach
#include 
using namespace std;
  
// Box Class
class box {
private:
    int length;
    int breadth;
    int height;
  
public:
    // Function that sets the dimensions
    void set_dimensions(int length1, int breadth1,
                        int height1)
    {
        length = length1;
        breadth = breadth1;
        height = height1;
    }
  
    // Function to display the dimensions
    // of the Box object
    void show_data()
    {
        cout 

Output:


Length = 14
Breadth = 12
Height = 16
Length = 14
Breadth = 12
Height = 16
Length = 14
Breadth = 12
Height = 16

Learning English Everyday