C++——拷贝构造函数
生活随笔
收集整理的這篇文章主要介紹了
C++——拷贝构造函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
拷貝構造函數
拷貝構造函數是一種特殊的構造函數,它在創建對象時,是使用同一類中之前創建的對象來初始化新創建的對象。拷貝構造函數通常用于:
-
通過使用另一個同類型的對象來初始化新創建的對象。
-
復制對象把它作為參數傳遞給函數。
-
復制對象,并從函數返回這個對象。
通過使用已有的同類型的對象來初始化新創建的對象
#include <iostream>using namespace std;class Line {public:int getLength( void );Line( int len ); // 簡單的構造函數Line( const Line &obj); // 拷貝構造函數~Line(); // 析構函數private:int *ptr; };// 成員函數定義,包括構造函數 Line::Line(int len) {cout << "調用構造函數" << endl;// 為指針分配內存ptr = new int;*ptr = len; }Line::Line(const Line &obj) {cout << "調用拷貝構造函數并為指針 ptr 分配內存" << endl;ptr = new int;*ptr = *obj.ptr; // 拷貝值 }Line::~Line(void) {cout << "釋放內存" << endl;delete ptr; } int Line::getLength( void ) {return *ptr; }void display(Line obj) {cout << "line 大小 : " << obj.getLength() <<endl; }// 程序的主函數 int main( ) {Line line1(10);Line line2 = line1; // 這里也調用了拷貝構造函數display(line1);display(line2);return 0; }/* 輸出結果 調用構造函數 調用拷貝構造函數并為指針 ptr 分配內存 調用拷貝構造函數并為指針 ptr 分配內存 line 大小 : 10 釋放內存 調用拷貝構造函數并為指針 ptr 分配內存 line 大小 : 10 釋放內存 釋放內存 釋放內存 */?
總結
以上是生活随笔為你收集整理的C++——拷贝构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++——构造函数析构函数
- 下一篇: C++——this指针