摘要:
1.构造函数 比如分数可以被视为一个double 没参数,不用写返回类型(直接用名称了),通常加const 2.non-explicit-one-argument ctor非显式的、只有一个参数的构造函数 3.conversion function vs. non-explicit-one-argu 阅读全文
posted @ 2026-01-06 14:48
r5ett
阅读(4)
评论(0)
推荐(0)
摘要:
1.例子1 2.例子2 Prototype Pattern原型,核心思想是: 用一个已经创建好的对象(原型)作为模板,通过拷贝(clone)它来创建新对象,而不是每次都用 new + 构造函数参数去创建。 最上面的 Prototype 类:Image(抽象基类) class Image { publ 阅读全文
posted @ 2026-01-06 14:48
r5ett
阅读(1)
评论(0)
推荐(0)
摘要:
1.inheritance with virtual functions(虚函数) non-virtual函数:你不希望derived class(子类)重新定义它 virtual函数:你希望derived class重新定义它,且你对它已有默认定义 pure virtual函数:你希望derive 阅读全文
posted @ 2026-01-06 14:48
r5ett
阅读(6)
评论(0)
推荐(0)
摘要:
1composition复合,表示has-a 内存上看 composition复合关系下的构造和析构 构造由内而外,container的构造函数首先调用component的default构造函数,然后才执行自己 container::container():component();//其中compo 阅读全文
posted @ 2026-01-06 14:48
r5ett
阅读(2)
评论(0)
推荐(0)
摘要:
1.静态函数不能调用this 阅读全文
posted @ 2026-01-06 14:48
r5ett
阅读(2)
评论(0)
推荐(0)
摘要:
1.stack objects的生命期 栈只要离开作用域就消失了,自动调用析构函数 2.static local objects的生命期 {static complex c2(1,2);} c2的生命在作用域结束之后仍然存在,直到整个程序结束 3.heap objects的生命期 堆要手动删除 4. 阅读全文
posted @ 2026-01-06 14:48
r5ett
阅读(4)
评论(0)
推荐(0)
摘要:
拷贝构造 拷贝复制 析构函数是由编译器在对象生命周期结束时自动调用的,用来释放内存 class String { public: String(const char* cstr = 0);/* 构造函数 初始值为空 / String(const String& str);/ 拷贝构造函数 / Str 阅读全文
posted @ 2026-01-06 14:48
r5ett
阅读(1)
评论(0)
推荐(0)
摘要:
1.操作符重载1,成员函数,有this 2.操作符重载2,非成员函数,无this /* 重载复数的算术运算符和关系运算符 / / 下面这些函数绝不可return by reference 因为他们返回的必定是个local object */ inline complex operator + (co 阅读全文
posted @ 2026-01-06 14:48
r5ett
阅读(2)
评论(0)
推荐(0)
摘要:
1.构造函数被放在private区,在不允许外界创建对象时这么做。确保整个程序中,类A永远只有一个对象存在。 class A { public: static A& getInstance();//获取唯一实例的静态函数 setup() { ... }// 第2行:普通的成员函数(这里省略了实现) 阅读全文
posted @ 2026-01-06 14:47
r5ett
阅读(1)
评论(0)
推荐(0)
摘要:
1.构造函数的写法 1.1基本语法 class 类名 { public: 类名(参数列表) // 构造函数声明 { // 构造函数体:初始化代码 } }; 1.2 class 类名 { public: 类名(参数列表) : 成员1(参数1), 成员2(参数2), ... { // 构造函数体(通常为 阅读全文
posted @ 2026-01-06 14:47
r5ett
阅读(3)
评论(0)
推荐(0)

浙公网安备 33010602011771号