VC++深入详解之C++笔记

来源:本站
导读:目前正在解读《VC++深入详解之C++笔记》的相关信息,《VC++深入详解之C++笔记》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《VC++深入详解之C++笔记》的详细说明。
简介:VC++深入详解之C++笔记

一类的继承

假设有一个动物类,他们都有呼吸,睡觉,吃饭

继承起来就是这样子的:

class animal

{

public:

animal()

{

cout<<”animal construct”<<endl;

}

~animal()

{

cout<<”animal destruct”<<endl;

}

void eat()

{

cout<<”animal eat”<<endl;

}

void sleep()

{

cout<<”animal sleep”<<endl;

}

void breathe()

{

cout<<”animal breathe”<<endl;

}

};

下面定义一条鱼:

class animal :public animal

{

fish()

{

cout<<”fish construct”<<endl;

}

~fish(){

cout<<”fish destruct”<<endl;

}

};

这样鱼就继承了animal的eat、breath、sleep方法,并且可以通过main函数查看父类和子类的创建和析构顺序。

类中只读变量的初始化

class point

{

public:

point(): x(0), y(0)

private:

const int x;

const int y;

};

子类初始化父类的带参构造函数

class animal

{

public:

animal(int height, ine weight)

{

cout<<”animal construct”<<endl;

}

~animal()

{

cout<<”animal destruct”<<endl;

}

void eat()

{

cout<<”animal eat”<<endl;

}

void sleep()

{

cout<<”animal sleep”<<endl;

}

void breathe()

{

cout<<”animal breathe”<<endl;

}

};

下面定义一条鱼:

class animal :public animal

{

fish():animal(400, 300)

{

cout<<”fish construct”<<endl;

}

~fish(){

cout<<”fish destruct”<<endl;

}

};

类的继承与类的成员的访问特性

public定义的成员可以在任何地方被访问

protected定义的成员只能在该类和其子类中访问

private定义的成员只能在该类自身中访问

类的继承时一般定义为public继承,比如上面的鱼继承动物。而类默认为private继承,就是父类的成员在子类中都变成了private类型的访问权限。如果以protected的方式则基类中的public和protected成员在派生类中都变成了protected类型的访问权限。

多重继承问题

一个类可以从多个基类中派生。在派生类由多个基类派生的多重继承模式中,基类是用基类表语法成分来说明的,多呈继承的语法与单一继承很类似,只需要在声明继承的多个类之间加上逗号来分隔,定义形式为:

class B: public C, public D

{

……

};

基类的说明顺序只对要调用构造函数和析构函数时有影响:

构造函数:如果代码依赖于B的D部分要在C部分之前初始化,则说明顺序很重要,可以在继承表中吧D类放在C类的前面。初始化是按照基类表中的说明顺序进行初始化的。

激活析构函数进行清除的顺序:析构函数的调用按基类表说明顺序相反的方向进行调用的。

虚函数与多态性

C++的多态性用一句话来概括就是:在基类的函数前加上virtual关键字,在派生类重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象是派生类,就调用派生类的函数,如果对象是基类就调用基类的函数。

其中,对象的实际类型指的是定义的类型。在C++中可以定义一个指向派生类的指针而把这个指针指向基类,这句话的含义就是该指针的实际类型还是派生类。

纯虚函数

virtual void breathe() = 0;

有纯虚函数的类不能实例化对象。

函数的覆盖与隐藏

函数的覆盖是发生在基类和派生类之间的,并且函数完全相同,基类的函数为虚函数(所以派生类的函数也是虚函数?)这是覆盖,其它的都属于隐藏。

C++的多态性是通过虚函数来实现的,所以函数的覆盖总是和多态关联在一起。这里就会回顾上面的虚函数与多态性的“根据对象的实际类型确定调用的函数”。

引用

在调用函数传参时经常使用指针传递:一是避免在实参占较大内存时发生值的复制,二是完成特殊作用,比如修改内存内容。

引用一般用于函数形参上,也可以达到指针的目的,有时效果比指针好(可读性上)。

头文件包含问题的解决

使用#define宏定义

<>和””的区别

<>表示编译器搜索头文件的时候先从系统目录下开始搜索,然后再搜索PATH环境变量所列出的目录,不搜索当前目录。””表示从当前目录à系统目录àPSTH环境变量所列出的目录

提醒:《VC++深入详解之C++笔记》最后刷新时间 2024-03-14 01:03:29,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《VC++深入详解之C++笔记》该内容的真实性请自行鉴别。