zoukankan      html  css  js  c++  java
  • C++ 进阶5 拷贝构造 深度复制 运算符重载

    C++ 进阶5 拷贝构造 深度复制 运算符重载 20131026

    例子: 运行环境是G++ 编译,

    /*

     * main.cpp

     *

     *  Created on: 2013年10月26日

     *      Author: yangtfei

     */

    #include <iostream>

    #include <cstring>

    #include <stdlib.h>

    #include <stdio.h>

    using namespace std;

    class Base{

    private:

        int val;

        char * str;

    public:

        Base(const char * str, const int v){

            this->val = v;

            int len  = strlen(str);

            this->str = new char[len+1];

            strcpy(this->str,str);

        }

        Base(const Base & b){

            this->val = b.val;

            int len  = strlen(b.str);

            this->str = new char[len+1];

            strcpy(str, b.str);

        }

        Base& operator=(const Base& b){

            this->val = b.val;

            int len =  strlen(b.str);

            this->str = new char[len+1];

            strcpy(str,b.str);

            return *this;

        }

        ~Base(){

            delete this->str;

            cout << "Base::~Base()" << endl;

        }

        void printInfo(){

            cout << "val:" << this->val << ", name:" << this->str << endl;

        }

        void setName(const char * name){

            if(this->str!= NULL){

                delete str;

                str = NULL;

            }

            int len  = strlen(name);

            str = new char[len+1];

            strcpy(str,name);

        }

    };

    void getMemory(char ** p , int num){

        *p =(char*) malloc(num);

    }

    int main(){

        Base b("yang",10);

        Base c = b;

        Base d (b);

        b.printInfo();

        c.printInfo();

        d.printInfo();

        b.setName("teng");

        c.setName("fei");

        b.printInfo();

        c.printInfo();

        d.printInfo();

        return 0;

    }

  • 相关阅读:
    使用Java实现对MySql数据库的导入与导出
    【转】揭开J2EE集群的神秘面纱
    Memcached深度分析
    HSQL入门及使用指南
    系统架构基础篇(高性能基础建设说明与选型条件)
    架构之美 摘抄
    JMS规范及相关实现
    spring3中使用@value注解获取属性值
    Thread Dump 分析综述
    什么中间件及中间件服务器?
  • 原文地址:https://www.cnblogs.com/hbhzsysutengfei/p/3409506.html
Copyright © 2011-2022 走看看