http://blog.csdn.net/wangshihui512/article/details/9792309

已知String类声明如下:

[cpp] view plaincopy print?
  1. class String
  2. {
  3. public:
  4. String(const char *str = NULL); // 通用构造函数
  5. String(const String &another); // 拷贝构造函数
  6. ~ String(); // 析构函数
  7. String & operater =(const String &rhs); // 赋值函数
  8. private:
  9. char *m_data; // 用于保存字符串
  10. };

写出类的成员函数实现:

[cpp] view plaincopy print?
  1. String::String(const char *str)
  2. {
  3. if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断
  4. {
  5. m_data = new char[1] ;
  6. m_data[0] = '\0' ;
  7. }
  8. else
  9. {
  10. m_data = new char[strlen(str) + 1];
  11. strcpy(m_data,str);
  12. }
  13. }
  14. String::String(const String &another)
  15. {
  16. m_data = new char[strlen(another.m_data) + 1];
  17. strcpy(m_data,other.m_data);
  18. }
  19. String& String::operator =(const String &rhs)
  20. {
  21. if ( this == &rhs)
  22. return *this ;
  23. delete []m_data; //删除原来的数据,新开一块内存
  24. m_data = new char[strlen(rhs.m_data) + 1];
  25. strcpy(m_data,rhs.m_data);
  26. return *this ;
  27. }
  28. String::~String()
  29. {
  30. delete []m_data ;
  31. }

String::String(const char *str) 

    if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断 
    { 
        m_data = new char[1] ; 
        m_data[0] = '\0' ; 
    } 
    else 
    { 
        m_data = new char[strlen(str) + 1]; 
        strcpy(m_data,str); 
    } 

String::String(const String &another) 

    m_data = new char[strlen(another.m_data) + 1]; 
    strcpy(m_data,other.m_data); 

String& String::operator =(const String &rhs) 

    if ( this == &rhs) 
        return *this ; 
    delete []m_data; //删除原来的数据,新开一块内存 
    m_data = new char[strlen(rhs.m_data) + 1]; 
    strcpy(m_data,rhs.m_data); 
    return *this ; 

String::~String() 

    delete []m_data ; 
}

【笔试】:编程实现C++string 类成员函数相关推荐

  1. c ++类成员函数_C ++编程中的数据成员和成员函数

    c ++类成员函数 C ++中的数据成员和成员函数 (Data members and Member functions in C++) "Data Member" and &qu ...

  2. 类和对象编程(一):类成员函数

    C++ 类成员函数 类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样.类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员. 让我们看看之前定义的 ...

  3. C++普通函数指针和类成员函数指针

    举例1:普通函数指针: int(*fun)(double, int);fun = [](double a, int b) {cout << a << endl;cout < ...

  4. 【C++】抽象和类(2)--如何实现类成员函数?

    目录 1 实现类成员函数 成员函数的定义有两个特殊的特征 类方法的完整 名称包括类名 类方法可以直接 访问私有成员!!! 2 代码示例 stock00.h stock00.cpp 3. 代码解析 3. ...

  5. 【C/C++学院】(8)全局函数和类成员函数转化/友元/操作符重载

    1.全局函数和类成员函数转化 全局函数和成员函数的相互转化:只需要修改一个指向本类的this指针: #include <iostream> using namespace std;clas ...

  6. C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)

    1. 类的定义 类定义是以关键字 class 开头,后跟类的名称.并在它后面依次包含类名,一组放在 {} 内的成员属性和成员函数,以及结尾的分号. 类声明将类本身及其属性告诉编译器.类声明本身并不能改 ...

  7. 函数指针以及在类成员函数中应用函数指针

    什么是函数指针 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址.而且函数名表示的就是这个地址.既然是地址我们就可以定义一个指针变 ...

  8. 类成员函数指针和普通函数指针

    前言: 先声明一下,普通函数指针和类成员函数指针有很大的区别!所以在绑定函数的时候也会发生很多的不同的情况,本文就函数指针可能出现的各种情况一一进行分析. 测试目录: 1.普通函数指针指向普通函数 2 ...

  9. (C++)类的定义(实现类成员函数)——详细讲解,举例子

    前面讲解了类的声明,现在我们讲解一下类的定义. 类的定义说简单点就是实现类成员函数,而成员函数定义与常规的函数定义非常相似,也需要有函数头和函数体,也可以有返回类型和参数. 有两个特殊的特征: 1.定 ...

最新文章

  1. Linux--Tail命令
  2. 【推荐实践】Bandit算法在携程推荐系统中的应用与实践
  3. NVIDIA 修复 GPU 驱动中的多个代码执行缺陷
  4. [python] 1.解释器
  5. C++编程 中文转换成Unicode
  6. Matlab调用系统命令行利用Internet Download Manager(IDM)实现批量下载
  7. 计算机专业大二还学微积分吗,大学最容易挂科的专业,计算机专业绝对排得上前三,其他专业呢?...
  8. 魔兽地图服务器修改,魔兽地图编辑器的问题,怎么修改RPG
  9. ISO14229-1道路车辆-统一诊断服务(UDS)-1
  10. Matthew Dean Schwartz《Quantum Field Theory and The Standard Model》(马修·迪恩·施瓦茨《量子场论与标准模型》)中文目录
  11. 一、MySQL整体架构
  12. 酷开系统上线共抗疫情版块
  13. 工程点点app爬虫和sign算法破解
  14. 腾讯统一播放器 API 文档2.0
  15. Google Guava 工具类库
  16. 【mysql】limit实现分页
  17. [Go WebSocket] 为什么我选用Go重构Python版本的WebSocket服务?
  18. 《微机原理第五版》期末知识总结(第八章---第十章)
  19. gameboy bios_使用真实的NES,Gameboy和Sega颜色创建8位样式图形
  20. HTML期末大作业~ 明星林依晨(7页)带留言 学生网页设计作业源码(HTML+CSS+JS)

热门文章

  1. CF 961E Tufurama
  2. 有关域索引错误产生的原因及解决办法
  3. idea 创建多模块依赖Maven项目
  4. Linux内核分析 02
  5. ASP.NET Web API 处理架构
  6. java逆向_Java逆向基础之异常
  7. onpagefinished等了很久才执行_今天自律了吗?停课不停锻炼 才是战疫正确姿势
  8. app vue 真机运行_使用 HBuilder 将 Vue 项目打包成手机 App
  9. 糖豆人维修服务器多长时间,服务器不稳定的《糖豆人》凭啥还这么火?只因做到了这三点...
  10. linux 实验 ps,Linux实验室:监控命令iostat与ps_服务器x86服务器-中关村在线