30/09/2018, 17:21
[Hỏi] Thắc mắc về Copy Constructor
Tình hình là em đang học về Copy Constructor, nhưng mà em không hiểu nó làm gì và hoạt động như thế nào, mọi người giải thích giùm em nha.
Đây là code trên http://www.tutorialspoint.com/
class Line
{
public:
int getLength( void );
Line( int len ); // simple constructor
Line( const Line &obj); // copy constructor
~Line(); // destructor
private:
int *ptr;
};
// Member functions definitions including constructor
Line::Line(int len)
{
cout << "Normal constructor allocating ptr" << endl;
// allocate memory for the pointer;
ptr = new int;
*ptr = len;
}
Line::Line(const Line &obj)
{
cout << "Copy constructor allocating ptr." << endl;
ptr = new int;
*ptr = *obj.ptr; // copy the value
}
Line::~Line(void)
{
cout << "Freeing memory!" << endl;
delete ptr;
}
int Line::getLength( void )
{
return *ptr;
}
void display(Line obj)
{
cout << "Length of line : " << obj.getLength() <<endl;
}
// Main function for the program
int main( )
{
Line line(10);
display(line);
return 0;
}
Bài liên quan
Giả sử có class Student trong đó có chứa copy constructor.
Mình có thể dùng như lày:
Hình như là vậy
mục đích của hàm copy constructor là sao chép giá trị của một đối tượng đã có để tạo ra một đối tượng mới có giá trị tương ứng.
ví dụ:
như class Line có hàm copy constructor Line::Line(const Line &obj), có đối tượng line là 15 thì khi gọi hàm copy thì sẽ tạo một đối tượng line mới có giá trị là 15.
Trên là ý nghĩa và mục đích của hàm copy constructor.