zoukankan      html  css  js  c++  java
  • 对象的复制

     1 class Name
     2 {
     3    const  char* s;
     4    //~~~
     5 };
     6 
     7 class Table
     8 { 
     9    Name *p;
    10    size_t sz;
    11 public:
    12 Table(size_t s=15) {p=new Name[sz=s];}  //构造函数
    13 ~Table() {delete[]p;}   //析构函数
    14 Table(const Table&);// 复制构造函数
    15 Table& operator=(const Table&) //复制赋值     
    16 }
    17 
    18 Table::Table(const table& bt) 
    19 {
    20 p=new Name[sz=t.sz];
    21 for(int i=0;i<sz;i++) p[i]=t.p[i];
    22 }
    23 
    24 Table& Table::operator=(const Table& t)
    25 {
    26   if(this!=&t){ //当心自赋值
    27            delete[] p; 
    28             p=new Name[sz=t.sz];
    29            for(int i=0;i<sz;i++)
    30           p[i]=t.p[i];
    31 }
    32 return *this;
    33 }

    复制构造函数是去完成对未初始化的存储区的初始化

    复制赋值运算符则必须正确处理一个结构良好的对象。

  • 相关阅读:
    Uri编码,包括javascript前端与C#服务器端
    快速排序
    bootstrap
    boosting
    bagging
    SHELL排序
    冒泡排序
    插入排序
    选择排序
    二叉树的数学性质
  • 原文地址:https://www.cnblogs.com/huhaibo/p/3376436.html
Copyright © 2011-2022 走看看