侯捷 c++面向对象程序设计】的更多相关文章

基础知识 基于对象:Object Based 面对的是单一class的设计. 面向对象:Object Oriented 面对的是多重classes的设计,涉及到类和类之间的关系. 课程中设计到两种不同类设计:没有指针(成员变量)的类和带指针(成员变量)的类设计. 头文件一般采用h结尾,源文件一般采用cpp,但是也不一定!(如stl很多没有后缀名) 头文件采用防御式声明,采用 #ifndef *** #define *** #endif,避免多次引用. 注意声明文件的内容顺序,一般是前置声明.类声…
前言 最近在看侯捷的一套课程<C++面向对象开发>,刚看完第一节introduction之后就被疯狂圈粉.感觉侯捷所提及所重视的部分也正是我一知半解的知识盲区,我之前也写过一些C++面向对象的程序,不过正如侯捷所说,我还仅仅停留于Object-based层面,写程序时总是在想如何封装好一个类,而不是Object-oriented强调类与类之间关系的设计. 这门课程分为两部分,第一部分讲Object-based,第二部分讲Object-oriented:第一部分又分为两部分:带指针的类的封装和不…
一.OOP和GP的区别(video7) OOP:面向对象编程(Object-Oriented programming) GP:泛化编程(Generic programming) 对于OOP来说,我们要实现容器,应该是这样的: 将数据和方法关联在一起,例如排序,用成员方法的方式将其放在容器类中. 对于GP来说,我们将数据和方法分开: 如图中所示,左边是容器的定义,而右边是sort算法的定义.我们用::sort(c.begin(),c.end())就可以调用全局的sort算法,参数代表数据的存放范围…
目录 C++历史 C++的组成 C++ 与 C 的数据和函数区别 基于对象与面向对象的区别 C++类的两个经典分类 头文件防卫式声明 头文件的布局 类的声明 类模板简介 内联(inline)函数 访问级别 函数重载 构造函数的位置 参数传递 返回值传递 友元 操作符重载(一),this, cout 操作符重载(二)非成员函数,无this,临时对象 Big Three ---string class begin 构造函数与析构函数 拷贝构造与拷贝赋值 生命期--堆,栈,静态,全局 重探new与de…
目录 Composition(复合) 内存视角下的composition(复合) composition(复合)关系下的构造与析构 Delegation (委託) -- Composition by reference Inheritance (继承) Inheritance (继承)关系下的构造与析构 Inheritance (继承)with virtual functions(虚函数) Inheritance (继承)with virtual --经典实例 Inheritance + Com…
[.net 面向对象程序设计深入](0)开篇        [.net 面向对象编程基础]和 [.net 面向对象程序设计进阶]在15年底写完了,群里也加进来不少热爱学习的小伙伴.让我深切感受到在这个相对浮燥的年代,还是有这么多人能静下心下学习.其实不怕基础不好,也不要羡慕各种大牛,在大牛们接受崇拜的时候,你能知道他们背后付出的努力么? 在我上几篇文章中,好多小伙伴急于想看更高级的东西,所有高级的都是先打基础.喜欢看武侠剧的朋友知道,有个大牛叫扫地僧,他只是每天清理藏经阁,静心读书.静心学习终成…
[.net 面向对象程序设计进阶] (1) 开篇 上一系列文章<.net 面向对象编程基础>写完后,很多小伙伴们希望我有时间再写一点进阶的文章,于是有了这个系列文章.这一系列的文章中, 对于.net 基础的一些知识,推荐小伙伴们阅读一下我上一系列文章<.net 面向对象编程基础> ,也就是说本篇文章在阅读前,最好是掌握了.net 的基础知识. 首先,“.net 面向对象程序设计进阶”这一系列的文章涉及的范围比较广,每一节相当于.net的一个分支,基本可以作为一个独立的课题了.只所以…
[.net 面向对象程序设计深入](6).NET MVC 6 —— 模型.视图.控制器.路由等的基本操作 1. 使用Visual Studio 2015创建Web App (1)文件>新建>项目,选择Web>ASP.NET Web 应用程序 (2)在新项目MyFirstWebApp对话框中,选择ASP.NET 5模板>Web Application 由于是RC版,这里的”添加单元测试“暂时不能选,上面的WebForms MVC WebAPI将合并,前面一节介绍过了,因此也不需要再选…
[.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到ASP.NET 5.0之后更名为ASP.NET Core 1.0,同样MVC 6.0也是运行在它之下. 我们要进行开发和部署基于MVC 6.0的项目,首先要搭建他的开发环境. Core 1.0 是一个支持跨平台框架,下面分别介绍如何在Windows/Mac Os X/Linux下搭建开发环境. 2.基于Window…
[.net 面向对象程序设计深入](4)MVC 6 ——谈谈MVC的版本变迁及新版本6.0发展方向 1.关于MVC 在本篇中不再详细介绍MVC的基础概念,这些东西百度要比我写的全面多了,MVC从1.0到5.0的时间也不短了,很多人只是按照范例去使用MVC的一些基础功能,并没有更加深入的了解MVC.在这一系列中,我主要介绍MVC的一些原理和使用技巧,以及MVC的发展方向. 先说说MVC,首先他是一种设计模式,如果你百度为什么GOF23种设计模式中没有MVC,答案很有意思,如下: “在他们看来,它其…