《VC++深入详解》读书笔记——2.掌握C++

C++是一门极其复杂的语言,掌握C++。我认为是不可能在一个章节中详细论述的,这一篇仅仅讨论几个喜闻乐见的C++问题。

1. 结构体与类
C语言与C++的结构体有所不同:C语言中结构体只能包含数据成员,不能包含函数;C++可以包含变量与函数。
C++中结构体与类本质上是一样的,结构体是利用struct声明的类。类和结构体的区别:(1)关键字不同,class、struct;(2)默认成员访问权限不同,类是私有、结构体是公有。

2. this指针
this指针是一个隐含的指针,指向对象本身。假设定义一个类,代码如下:

class point
{
publicint x;
    int y;
    point(int a,int b)
    {
        x=a;
        y=b;
    }   
    void input(int x,int y)
    {
        x=x;
        y=y;
    }
}

input函数,想通过形参x和y给成员变量x和y赋值,但是由于变量的可见性,成员变量x和y是不能访问到的。在这里,就可以通过this->x和this->y来对成员变量进行赋值。

3.类的继承及类中成员访问特性
类中的成员有三种访问权限:(1)public定义的成员可以在任何地方被访问;(2)protected定义的成员只能在该类及其子类中访问;(3)private定义的成员只能在该类自身中访问。
对于继承,同样有三种访问权限去继承基类中的成员。对于子类的成员访问权限,高等级的权限被降级继承。

4.多态性、纯虚函数、抽象类
在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。
纯虚函数是指被标明为不具体实现的虚成员函数。纯虚函数可以让类先具有一个操作名称,而没有操作内容,派生类在继承时给出具体定义。
凡是含有纯虚函数的类叫做抽象类,抽象类不能声明对象,只能作为基类为派生类服务。

4.重载、覆盖与隐藏
重载构成条件:函数的类型不同、参数个数不同,简而言之,就是参数列表不同。只有函数的返回值不同是不能构成函数的重载的。
函数覆盖的条件为:基类必须是虚函数(使用virtual关键字进行声明),发生覆盖的两个函数要分别位于派生类和基类中,函数名称与参数列表必须完全相同。覆盖与多态总是联系在一起。
隐藏发生的情况:(1)派生类的函数与基类的函数完全相同(函数名字和参数列表都相同),只是基类的函数没有使用virtual关键字;(2)派生类的函数与基类的函数同名,但参数列表不同,这种情况下,不管基类是否使用了virtual关键字,基类的函数都将被隐藏。

#include <iostream>
using namespace std;

class Base
{
public:
    virtual void xfn(int i)
    {
        cout << "Base::xfn(int i)" << endl;
    }
    void yfn(float f)
    {
        cout << "Base::yfn(flaot f)" << endl;
    }
    void zfn()
    {
        cout << "Base::zfn()" << endl;
    }
};

class Derived :public Base
{
public:
    void xfn(int i)   //覆盖了基类的xfn函数
    {
        cout << "Drived::xfn(int i)" << endl;
    }
    void yfn(int c)   //隐藏了基类的yfn函数
    {
        cout << "Drived::yfn(int c)" << endl;
    }
    void zfn()        //隐藏了基类的zfn函数
    {
        cout << "Drived::zfn()" << endl;
    }
};

void main()
{
    Derived d;
    Base *pB = &d;
    Derived *pD = &d;

    pB->xfn(5);
    pD->xfn(5);

    pB->yfn(3.14f);
    pD->yfn(3.14f);

    pB->zfn();
    pD->zfn();

    system("pause");

}

运行结果:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《VC深入详解第3版PDF》是一本介绍Visual C++编程的书籍,该书主要针对具有一定编程基础的开发者,讲解了VC编程的高级应用和技巧。 该书分为10章,从Windows程序设计基础、MFC应用程序框架、视图类、文档类、数据库编程、多线程编程、网络编程、COM组件开发、ActiveX控件开发以及VC程序调试与优化等方面进行了深入系统的讲解,全面介绍了VC编程的相关知识和技术,对开发者有很大的帮助。 在该书中,作者通过丰富的实例和详细的代码讲解,让读者深入了解VC编程的常见问题和解决方法。同时,书中还介绍了一些重要的编程工具和技巧,如调试工具的使用、Windows消息机制、数据类型转换等,这些内容可以帮助读者从更高的角度理解VC编程,并更好地掌握其技术特点。 总之,《VC深入详解第3版PDF》是一本对VC编程进行深入研究和学习的优秀书籍,同时也适用于希望提高Windows程序设计和开发的程序员。该书具备丰富的内容和深入的讲解,对VC编程感兴趣的开发者将有所裨益。 ### 回答2: VC 深入详解 第3版 PDF 是一本介绍 Microsoft Visual C++VC++)程序设计语言的详尽指南。本书在深入介绍 C++ 语言和编程基本概念的基础上,重点讲解了 VC++ 的程序设计和开发理念、各种功能和应用方法。本书内容全面,包括 VC++ 编译器、Windows 应用程序开发、图形用户界面设计、多线程编程、应用程序框架、数据库编程、网络编程等多个方面,对新手和资深程序员都有较高的指导作用。 本书第三版相对于前两版更新换代,其主要变化在于增加和更新了一些章节,完善了一些概念和应用。例如,本版增加了针对 Windows 8、Windows 10、Visual Studio 2013 和 2015 等新技术和工具的章节,更新了若干图形界面设计和控件使用的方法,增加了多线程、数据库和网络编程等方面的实例等等。同时,本书也对一些旧版章节进行了深入拓展和重制,以提高其可读性和可操作性。 值得注意的是,本书虽然以 VC++ 为主轴,但其对 C++ 语言本身也有广泛的涉猎,对于学习 C++ 编程的初学者也具有较好的指导作用。此外,本书的内容偏向实战操作,有大量具有代表性的应用实例供读者参考和尝试,这对于帮助读者掌握 VC++ 编程技术和提高实战操作能力都是有益的。 总之,《VC 深入详解 第3版 PDF》是一本帮助程序员深入理解 VC++ 编程技术和应用的权威性指南,具有较高的指导作用和实际价值。 ### 回答3: 《VC深入详解》是一本介绍Microsoft Visual C++编程语言和开发工具的书籍,此书分为入门篇和深入篇两部分,全书共分22章,对VC语言的基础知识、面向对象编程、MFC程序框架、窗口、对话框、菜单、工具栏、绘图、多媒体等方面进行了详尽的讲解和实践操作。第3版更新了最新版本的VC++ 2013和MFC,对原有的内容进行了更新和完善。 此书的深入详解部分具有较强的实践性和实用性, chapters中包括了Windows应用程序设计、高级算法、网络编程、多线程编程、数据库编程、动态链接库、ActiveX控件与COM、ATL和.NET等内容。并且此书结合了理论和实践,每个章节都有完整的实例程序,并且结合具体应用场景进行分析,让读者不仅能够掌握基本知识,还能够提升对VC编程的实际应用能力。 总体评价而言,《VC深入详解》是一本较为全面和权威的VC编程实战教程,适合于具有C/C++编程基础者进行深入学习,对于从事Windows软件开发的程序员和学生都具有很高的参考价值。在VC++编程学习中,这本书是一份必备工具书,对于提高编程能力有很大的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值