注意事项(class without pointer)
1、防卫式的申明,避免重复定义类
2、重载一般发生在构造函数中,构造函数可以提供默认实参,要注意成员初始化列表的使用。构造函数在对象创建的同时被调用。
3、有些函数可以在类中直接进行定义,也可以在类外进行定义,在类中进行定义的函数都为内联函数,在类外定义式在前面加上inline则也可以推荐为内联函数,但具体是不是内联还是得看编译系统。内联函数一般选择较为简单的函数(不能包含循环,switch等。)内联函数能够节省参数传递,控制转移等开销。
4、成员函数中分为会改变数据的函数和不会改变数据的函数,不会改变数据的函数立马加上const。
5、参数传递时如果通过传值的方式,一方面内容很大时会导致效率的降低,另一方面可能导致错误(不能修改调用函数中的数据对象)。参数传过去不希望对方进行修改则应该设置为const
6、返回值传递也尽量传引用,返回值不是一个local objects则可以传引用(this),注意<<重载与+=重载时的返回类型。
7、什么时候可以返回引用:不需要在函数内创建一个新的东西来返回出去,仅仅将计算后的值放在已经存在的东西上,如+=,但是相加则不行。返回的为一个local object则不能返回引用
8、所有的成员函数一定带有一个指向调用者的指针,全局函数没有this指针
代码展示
complex.h
#pragma once
#include <iostream>
using namespace std;
#ifndef _COMPLEX_
#define _COMPLEX_
//template<typename T>//类模板
class complex
{
//访问级别:public、private(数据)、protected
public:
//构造函数,默认实参,成员初始化列表
//构造函数在对象创建的同时被调用,函数名称与类的名称相同
//不带指针的类多半不用写析构函数
//有可能将构造函数放在private中(singleton)单例模式
complex(double r = 0, double i = 0)
: