![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象
tom555cat
这个作者很懒,什么都没留下…
展开
-
面向对象的三个基本特征
面向对象的三个基本特征面向对象的三个基本特征:封装,继承,多态。1. 封装 封装就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行隐藏。2. 继承 继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或转载 2014-02-12 00:28:13 · 665 阅读 · 0 评论 -
C++访问控制和继承
《C++ Primer》关键概念:类设计与受保护成员 如果没有继承,类只有两种用户:类本身的成员和该类的用户。将类划分为private和public级别反映了用户种类的一种分隔:用户只能访问public接口,类成员和友元既能访问public成员也可以访问private成员。 但有了继承,就有了类的第三种用户:从类派生定义新类的程序员。派生类的提供者通常(但并转载 2014-02-18 12:21:02 · 519 阅读 · 0 评论 -
C++的动态绑定
C++中,动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数。C++中的函数调用默认不使用动态绑定。要触发动态绑定,必须满足两个条件:第一,只有指定为虚函数的成员函数才能进行动态绑定,成员函数默认为非虚函数,非虚函数不进行动态绑定;第二,必须通过基类类型的引用或指针进行函数调用。转载 2014-02-18 17:29:15 · 614 阅读 · 0 评论 -
C++的类成员函数的使用体会
这一阵做项目代码开发的时候,用到了在一个C++文件中使用另一个类的成员函数的问题,做个小总结。其中有些是网上搜索的资料,因为比较分散就不一一给出出处了,请作者见谅。1.C++如何在一个类的成员函数中调用另一个类的成员函数?假设你想在类A里调用类B的函数int f(x),两种办法:(1)class A::B 也就是说将B定义为A的父类, 这样你就可以自然的在A里面用f(x)了转载 2014-02-19 21:19:38 · 1070 阅读 · 0 评论 -
设计模式之2迭代器原则
找出具有多重责任的类:设计原则:类的每个责任都有改变的潜在区域。超过一个责任,意味着超过一个改变区域。这个设计原则告诉我们,尽量让每个类保持单一责任。在迭代器模式中,对象集合类不仅要完成自己的事情(管理某种聚合),还要同时承担更多的责任(例如遍历)。这是对象集合类的两个责任,违反了我们的设计原则,所以把其中的一个责任(遍历)委托给了迭代器类。我对这个设计原则和文中的解释的理解为,设原创 2014-03-05 10:33:43 · 657 阅读 · 0 评论 -
C++容器的实现
现在的面试经常问到vector或queue怎么实现,好烦啊。由于刚刚看了迭代器设计模式一文,文中讲解了Java Collection Framework的框架,它们都实现了下面这个接口:所以,可以依靠这个接口实现我们自己的C++的容器类,有时间一定试一试,顺便与STL做一些比较。具体拿出其中的一个方法,比如iterator()方法来阐述一下如何实现。首先我们定义一个Iterat原创 2014-03-05 15:03:11 · 640 阅读 · 0 评论 -
组合模式
组合模式其实就是一个树状结构,其中有点包含组合,有的点就是叶子。组合模式中定义了一个包含了组合和叶子的抽象类,由于我们在使用时组合和叶子都继承了这个抽象类,所以为了避免叶子类使用了组合的方法,抽象类中的每一个方法都抛出一个异常。所以叶子子类重新定义了与自己相关的方法,组合子类重新定义了与自己相关的方法。如果它们调用了和自己不相关的方法,则抛出异常。组合模式中的抽象类有两个责任,一个是叶子责原创 2014-03-05 16:34:50 · 568 阅读 · 0 评论 -
使用C++写抽象工厂模式涉及到的一些问题
代码是摘自《C++高级编程第二版》具体类图如下:代码如下:汽车类:#include class Car{public: virtual void info() = 0;};class Ford : public Car{public: virtual void info() { std::cout<< "Ford" << std::endl; }};原创 2014-03-09 17:20:40 · 735 阅读 · 0 评论 -
多态
多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类转载 2014-02-12 00:36:12 · 583 阅读 · 0 评论