Tag Archives: 重载

自定义字符串类String,实现运算符重载,内存管理

1、String.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once
#include <iostream>
using namespace std;
 
class String {
	friend ostream &operator << (ostream &, String &);
private:
	char *m_name = NULL;
	char *setM_name(const char *cstring);
	char *strAppend(const char *, const char *);
public:
	String(const char *cstring = "");
	String(const String &);
	~String();
	bool operator == (String &string);
	String &operator = (String &string);
	String &operator = (const char *cstring);
	String operator + (const char *cstring);
	String operator + (const String &string);
	String &operator += (const char *cstring);
	String &operator += (const String &string);
	char operator[](int index);
	bool operator<(const String &string);
};
 
ostream &operator << (ostream &cout, String &string);
</iostream>

2、String.cpp

[……]

继续阅读

C++类的基本定义与使用

1、类的基本定义

1.1、class关键字+类名,类名使用大驼峰命名规则;
1.2、使用private、protected、public修饰成员属性与方法;
1.3、方法名使用大驼峰命名规则,成员属性使用m_xxxx下划线命名规则;
1.4、构造函数与析构函数名字与类名相同,无返回值类型,可重载,析构函数前加~;

1
2
3
4
5
6
7
8
9
10
11
12
class ClassName{
private:    // 私有属性与方法
    string  m_prop1;
protected:  // 保护属性与方法
    int     m_prop2;
public:     // 公开属性与方法
    double  m_prop3;
    // 构造函数与析构函数
    ClassName();
    ~ClassName();
    void    Method();
};

2、类方法的实现

2.1、在Cpp文件中,引用.h或.hpp文件,通过ClassName::Method()的方式实现类方法;
2.2、同一个Cpp文件中可实现多个类的方法,通过作用域限定符(::)区分;

1
2
3
4
5
6
ClassName::ClassName()
{
    // 这是默认的构造函数,可省略
    // 一般用来对象初始化工作;
    // 可重载
}

3、基本示例[……]

继续阅读