String class

String class:这种类的成员变量通常是指针char* m_data,用于指向某块内存。

针对指针的类,Big Three,三个特殊函数(拷贝构造,拷贝赋值和析构函数)。

拷贝构造:String(const Sting &str),通过相同的类构(new[])造自己。

拷贝赋值:String& operator=(const String& str),通过相同的类赋值给自己。

析构函数:~string(),释放(delete[])指针所指向的内存。

Big Three重点考虑了指针和内存分配的问题。

———————————————————————————————————

stack (局部动态空间)和 heap(全局的动态空间:new)

注释:new申请的内存,实际内存>理论需要的内存。需要空间记录并管理new的空间。同时还需要pad填补空位,使得class的大小是最大成员变量的空间的整数倍。

———————————————————————————————————

static:使得class共用同一变量

_______________________________________________________________

class template类模板 :complexc1(2.5,1.5);complexc2(2,4);

function template函数模板:r3=min(r2,r1);编译器会根据模板自动推导参数类型。

namespace 命名空间,将类,函数,变量包装在namespace中,避免命名冲突。

例如: std::类;std::函数

你可能感兴趣的:(String class)