您的位置:首页 > 科技 > 能源 > 网络服务提供者接到通知后_企业管理培训课程清单_自动app优化下载_免费网站推广网站短视频

网络服务提供者接到通知后_企业管理培训课程清单_自动app优化下载_免费网站推广网站短视频

2025/4/12 23:05:37 来源:https://blog.csdn.net/ylfhpy/article/details/147133753  浏览:    关键词:网络服务提供者接到通知后_企业管理培训课程清单_自动app优化下载_免费网站推广网站短视频
网络服务提供者接到通知后_企业管理培训课程清单_自动app优化下载_免费网站推广网站短视频

1. C++ 的拷贝构造函数,深拷贝和浅拷贝

 

  • 定义
  1. 拷贝构造函数:在 C++ 里,拷贝构造函数属于特殊的构造函数,其功能是使用一个已存在的对象来初始化一个新对象。当对象以值传递的方式作为参数传给函数、函数返回对象、用一个对象初始化另一个对象时,拷贝构造函数会被调用。
  2. 浅拷贝:仅复制对象的成员变量值。要是成员变量包含指针,仅仅复制指针的值,也就是两个对象的指针指向同一块内存区域。
  3. 深拷贝:不但复制对象的成员变量值,当遇到指针类型的成员变量时,会另外开辟一块新的内存空间,接着把原指针指向的内容复制到新的内存空间。

浅拷贝实现起来较为简单,但是存在内存管理方面的风险,例如一个对象销毁时释放了内存,另一个对象的指针就会变成野指针。深拷贝能够避免这种问题,不过实现起来更复杂,需要额外的内存分配和数据复制操作。

  • 要点
  1. 浅拷贝实现简单,但可能引发内存问题。
  2. 深拷贝能保证对象独立性,但开销较大。
  • 应用

在实际开发中,若对象包含动态分配的内存,通常需要使用深拷贝来避免内存错误。比如在图形处理程序里,每个图形对象可能包含指向图像数据的指针,使用深拷贝可以确保每个图形对象有自己独立的图像数据副本。

C++ 代码示例

cpp

#include <iostream>
#include <cstring>class MyClass {
private:char* data;
public:// 构造函数MyClass(const char* str) {data = new char[strlen(str) + 1];strcpy(data, str);}// 浅拷贝构造函数MyClass(const MyClass& other) {data = other.data; // 只复制指针}// 深拷贝构造函数MyClass(const MyClass& other, bool deepCopy) {if (deepCopy) {data = new char[strlen(other.data) + 1];strcpy(data, other.data);} else {data = other.data;}}// 析构函数~MyClass() {delete[] data;}void printData() {std::cout << data << std::endl;}
};int main() {MyClass obj1("Hello");MyClass obj2(obj1, true); // 深拷贝MyClass obj3(obj1);       // 浅拷贝obj1.printData();obj2.printData();obj3.printData();return 0;
}

 

2. 分布式架构中,怎么保证数据的一致性

 

  • 定义

在分布式架构里,数据会分散存储在多个节点上,由于网络延迟、节点故障等因素,数据可能出现不一致的情况。保证数据一致性

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com