类A是类B的友元,类C是类A的公有派生类,忽略特殊情况下,下列说法正确的:BD A 类B是类A友元 B 类C不是类B友元 C 类C是类B友元 D 类B不是类A友元 分析: (1) 友元关系不能被继承。(2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有 ...
分类:
其他好文 时间:
2017-07-24 11:41:05
阅读次数:
162
如何禁止C++默认成员函数 发表于 2016-03-02 | 分类于 C++ | 阅读次数 17 前言 前几天在一次笔试过程中被问到C++如何设计禁止调用默认构造函数,当时简单的想法是直接将默认构造函数声明为private即可,这样的话对象的确不能直接调用。之后查阅了《Effective C++》之 ...
分类:
编程语言 时间:
2017-07-22 14:22:51
阅读次数:
171
代码实例实现了继承和友元之间的关系,以及为了隐藏实际继承实现,而实现的接口类,代码偏乱,楼主- -自看的(提醒作用) TextQuery.h TextQuery.cpp Query.h & QueryBase{WordQuery,NotQuery,BinaryQuery{AndQuery,OrQUe ...
分类:
编程语言 时间:
2017-07-21 00:02:41
阅读次数:
147
定义: 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。 用法: 在A类中加入: 下面这个程序说明了友元类与友元派生类的权限。 ...
分类:
编程语言 时间:
2017-07-17 21:49:16
阅读次数:
204
siwuxie095 Dijkstra 算法 这里介绍 Dijkstra 算法,它是一个应用最为广泛的、名气也是 最大的单源最短路径算法 Dijkstra 算法有一定的局限性:它所处理的图中不能有负权边 「前提:图中不能有负权边」 换句话说,如果一张图中,但凡有一条边的权值是负值,那么 使用 Dij ...
分类:
编程语言 时间:
2017-07-08 10:08:26
阅读次数:
174
为什么要对运算符进行重载: C++预定义中的运算符的操作对象只局限于基本的内置数据类型,但是对于我们自定义的类型(类)是没有办法操作的。但是大多时候我们需要对我们定义的类型进行类似的运算,这个时候就需要我们对这么运算符进行重新定义,赋予其新的功能,以满足自身的需求。 1.一般运算符重载 在进行对象之 ...
分类:
编程语言 时间:
2017-07-07 17:32:31
阅读次数:
229
初探C++运算符重载学习笔记 在上面那篇博客中,写了将运算符重载为普通函数或类的成员函数这两种情况。 以下的两种情况发生。则我们须要将运算符重载为类的友元函数 <1>成员函数不能满足要求 <2>普通函数又不能訪问类的私有成员时 举例说明: class Complex{ double real, im ...
分类:
编程语言 时间:
2017-07-05 13:31:52
阅读次数:
158
1. 在类内部定义的函数默觉得inline,内联函数应该在头文件里定义,由于其定义对编译器必须是可见的,以便编译器可以在调用点内联展开该函数的代码。此时,仅有函数原型是不够的。 2.assert 3.异常 4.因为流对象不能复制。因此不能存储在容器中;因为流不能复制。因此形參或返回类型也不能为流类型 ...
分类:
编程语言 时间:
2017-07-01 20:51:49
阅读次数:
214
通过friend关键字,我们可以将不属于当前类的一个函数在当前类中加以声明,该函数便可以成为当前类的友元函数。#include<iostream>using namespace std;class book{public: book() { cout <<this->price << endl; / ...
分类:
编程语言 时间:
2017-06-29 10:10:03
阅读次数:
187
一、文章来由 上一篇写了友元函数,这一次写一个姊妹篇,继续深入探究一下友元类。 二、定义 友元类的全部成员函数都是还有一个类的友元函数。都能够訪问还有一个类中的隐藏信息(包含私有成员和保护成员)。 当希望一个类能够存取还有一个类的私有成员时,能够将该类声明为还有一类的友元类。定义友元类的语句格式例如 ...
分类:
编程语言 时间:
2017-06-29 10:02:47
阅读次数:
186