4.已知String类的原型是: class String { public: String(const char* str = NULL); //普通的构造函数 String(const String& that); //拷贝构造函数 ~String(void);//析构函数 Stri...
分类:
编程语言 时间:
2014-07-16 20:43:28
阅读次数:
196
拷贝、赋值与销毁(1)
13.1.1拷贝构造函数
/**************************************
13.1.1拷贝构造函数
**************************************/
class Foo1
{
public:
Foo1(); //默认构造函数
Foo1(const Foo1&); ...
分类:
编程语言 时间:
2014-07-13 00:10:38
阅读次数:
379
构造过程
Swift的构造过程通过定义构造器来实现。
不过与Objective-C不同的是,Swift的构造器不需要返回值,同样也不需要表明Func。
另外值得提的是,当构造器中为存储型属性赋值时,不会触发属性观测器。
定制化的构造过程
1. 除了默认的构造器外,我们可以通过增加参数的方式来为其添加自定义的构造函数或者叫便捷构造器(covenience i...
分类:
其他好文 时间:
2014-07-12 19:47:48
阅读次数:
354
经验:绝对不要重新定义继承而来的 non-virtual 函数 --> Item 7 "为多态基类声明 virtual 析构函数" 是本条款的特例
示例:
class B{
public:
void mf();
//...
};
class D: public B{
public:
void mf(); // 遮掩了B::mf,Item 33 名称遮掩规则
}
D x;
B *pB = &x;
D *pD = &x;
pB->mf(); // 调用 B::mf
pD->mf(); // 调用 ...
分类:
编程语言 时间:
2014-07-12 19:09:10
阅读次数:
234
c++基础知识 从一个基本的CMyString类讲起,分析了 构造函数 拷贝构造函数 析构函数 "="、"+="、"+"、左"++"、右"++"操作符重载 "<<"输出流友元函数重载 1、实现过程要关注内存泄露(析构)、非法输入值处理(“赋值重载”)、内存溢出异常处...
分类:
编程语言 时间:
2014-07-11 09:35:14
阅读次数:
251
1.虚方法(Virsual Method)虚方法是继承的,一旦在基类里把某个方法声明为虚方法,在子类里就不可能再把它声明为一个非虚方法了。在基类里把所有的方法都声明为虚方法会让最终生成的可执行代码的速度变得稍微慢一些,但好处是可以一劳永逸地确保程序的行为符合你的预期。析构器都是虚方法!从编译的角度看...
分类:
编程语言 时间:
2014-07-09 14:14:45
阅读次数:
196
1.构造器与结构体的区别:构造器多支持方法。其作用有申请内存,初始化变量。在c++中构造器没有返回值:语法Class Name();2.析构器的作用:释放内存。在c++中析构器没有返回值:语法~ClassName();class Animal{public: std::string mouth...
分类:
编程语言 时间:
2014-07-09 13:45:23
阅读次数:
207
C++不同于Java,Java中被final关键字修饰的类不能被继承,C++能实现不被继承的类,但是需要自己实现。 为了使类不被继承,最好的办法是使子类不能构造父类的部分,此时子类就无法实例化整个子类。在C++中,子类的构造函数会自动调用父类的构造函数,子类的析构函数也会自动的调用父类的析构函...
分类:
编程语言 时间:
2014-07-08 23:38:23
阅读次数:
320
1.构造函数和析构函数中调用虚函数
(1)采用静态编译。
(2)在编译阶段自动联接自己类中的函数或基类中的函数,不在派生类中重定义一个函数。
注:构造函数和析构函数中调用的虚函数,派生类都不一定存在的情况下,只能去调用基类或者自身的函数。
example 1
#include
class A
{
public:
A() {}
virtual void...
分类:
编程语言 时间:
2014-07-08 17:48:25
阅读次数:
274
请求的系统资源需要最终还回系统,为了避免遗忘返还这个动作,可以利用析构函数在object销毁时自动调用的特点来实现。简单说就是用object来管理资源。以内存资源为例class Investment {}; Investment* creatInvestment(){...} // factory ...
分类:
编程语言 时间:
2014-07-08 12:34:28
阅读次数:
222