Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++拷贝构造函数

作者:炼狱死神   发布日期:2026-02-26   浏览:54

// C++ 拷贝构造函数示例

#include <iostream>
#include <cstring>

class MyClass {
private:
    char* data;
public:
    // 构造函数
    MyClass(const char* str) {
        data = new char[strlen(str) + 1];
        strcpy(data, str);
        std::cout << "构造函数调用" << std::endl;
    }

    // 拷贝构造函数
    MyClass(const MyClass& other) {
        data = new char[strlen(other.data) + 1];
        strcpy(data, other.data);
        std::cout << "拷贝构造函数调用" << std::endl;
    }

    // 析构函数
    ~MyClass() {
        delete[] data;
        std::cout << "析构函数调用" << std::endl;
    }

    // 显示数据成员的值
    void display() const {
        std::cout << "Data: " << data << std::endl;
    }
};

int main() {
    MyClass obj1("Hello");
    obj1.display();

    MyClass obj2 = obj1;  // 拷贝构造函数在此处调用
    obj2.display();

    return 0;
}

解释说明:

  1. 构造函数:用于初始化对象,将传入的字符串复制到动态分配的内存中。
  2. 拷贝构造函数:当一个对象通过另一个已存在的对象进行初始化时调用。它会创建一个新的对象,并将其内容初始化为与原对象相同。
  3. 析构函数:在对象生命周期结束时自动调用,释放动态分配的内存,防止内存泄漏。
  4. display 方法:用于显示对象的数据成员。

在这个例子中,obj2 是通过 obj1 初始化的,因此会调用拷贝构造函数。

上一篇:c++ long

下一篇:c++ throw

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++框架代码

c++格式化字符串

c++ orm框架

c++ find_if

c++ random函数用法

队列c++

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站