上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要: 类型需要虚析构函数的另外一个特征 是该类型具有指针成员或引用成员。如果有指针成员和引用成员,则该类型通常需要实现析构函数以及拷贝操作。通常,一个实现了析构函数的类型同时也需要实现拷贝构造函数与拷贝复制函数。作为一个经验法则:如果你有一个带有虚函数功能的类,则它需要一个虚析构函数,原因如下:1.如果一个类有虚函数功能,它经常作为一个基类使用。2.如果它是一个基类,它的派生类经常使用new来分配。3.如果一个派生类对象使用new来分配,并且通过一个指向它的基类的指针来控制,那么它经常通过一个指向它的基类的指针来删除它(如果基类没有虚析构函数,结果将是不确定的,实际发生时,派生类的析构函数永远不会被 阅读全文
posted @ 2013-04-14 18:08 JustinYo 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 先执行析构函数的函数体,然后按跟声明顺序相反的顺序执行所有非静态数据成员对象的析构函数。如果有父类,接下来执行父类的析构函数。class Derived:Base{Object member0;Object member1;~Derived(){..}};先执行~Derived,再是member0和member1的析构,再是Base.~Base派生类继承了基类的成员,实现了代码的重复利用,但基类的构造函数和析构函数不能被继承。如果在派生类中需要对新增加的成员进行初始化,则需要加入派生类的构造函数。同样派生类也需要添加析构函数来实现一些结束工作。当创建对象时,编译系统会自动调用构造函数。当撤销对 阅读全文
posted @ 2013-04-14 18:03 JustinYo 阅读(750) 评论(0) 推荐(0) 编辑
摘要: WebKit源代码里的RefPtr智能指针的一些心得。OverviewWebKit的智能指针由类族 RefPtr 来实现,其核心由三个类组成:RefCountedRefPtrPassRefPtr其中RefCounted提供了引用计数器(一个int型成员),而RefPtr和PassRefPtr则提供了自动管理引用计数器的功能。根据RefPtr and PassRefPtr Basics的说法,最初并没有RefPtr和PassRefPtr,这两个类是2005年才加入的,在它们出现之前完全是靠找死的人工管理RefCounted的引用计数。RefCounted类本身是没有问题的,但它的使用方法相当繁琐 阅读全文
posted @ 2013-04-14 17:38 JustinYo 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 第一:private,public,protected的访问范围:private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问.protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问注:友元函数包括两种:设为友元的全局函数,设为友元类中的成员函数第二:类的继承后方法属性变化:使用private继承,父类的所有方法在子类中变为private;使用protected继承,父类的protected和public方法在子类中变为protect 阅读全文
posted @ 2013-04-14 16:46 JustinYo 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 问题的提出 我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开 销,而影响程式的运行效率。 为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数,但他需要在类体内进行说 明,为了和该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是他能够访问类中的私有成员。友元的作用在于提高.. 阅读全文
posted @ 2013-04-14 16:42 JustinYo 阅读(273) 评论(0) 推荐(0) 编辑
摘要: Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等。其中Scim和Ibus是输入法框架。在Ubuntu的中文系统中自带了中文输入法,通过Ctrl+Space可切换中英文输入法。这里我们主要说下Ubuntu英文系统中,中文输入法的安装。安装输入法的第一步,是安装语言包。我们选择System Settings-->Language Support-->Install/Remove Languages,将弹出以下窗口: www.2cto.com 输入密码后,系统会安装简体中文语言包。第二步,安装IBus框架,在终端输入以下命令:sudo 阅读全文
posted @ 2013-04-14 15:48 JustinYo 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。线程安全性不是一个非真即假的命题。 Vector 的方法都是同步 阅读全文
posted @ 2013-04-14 14:28 JustinYo 阅读(203) 评论(0) 推荐(0) 编辑
摘要: pthread_setschedparamIt seems that the source code did not match the executablebeing debugged.rebuild the code again, you must made a mistake 阅读全文
posted @ 2013-04-01 22:34 JustinYo 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 1. A Fragment URL Specifies A Location Within A PageAny URL that contains a # character is a fragment URL. The portion of the URL to the left of the # identifies a resource that can be downloaded by a browser and the portion on the right, known as the fragment identifier, specifies a location within 阅读全文
posted @ 2013-04-01 00:33 JustinYo 阅读(290) 评论(0) 推荐(0) 编辑
摘要: So what does a declaration look like? For example, if you write:int func();This is a function declaration; it does not provide the body of the function, but it does tell the compiler that it can use this function and expect that it will be defined somewhere.What it Means to Define Something in C and 阅读全文
posted @ 2013-03-31 23:58 JustinYo 阅读(293) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页