c++基础知识 从一个基本的CMyString类讲起,分析了 构造函数 拷贝构造函数 析构函数 "="、"+="、"+"、左"++"、右"++"操作符重载 "<<"输出流友元函数重载 1、实现过程要关注内存泄露(析构)、非法输入值处理(“赋值重载”)、内存溢出异常处...
分类:
编程语言 时间:
2014-07-11 09:35:14
阅读次数:
251
初探C++运算符重载学习笔记
在上述的博客中...
分类:
编程语言 时间:
2014-07-08 13:14:27
阅读次数:
168
模板友元函数在类内声明类外定义时都必须加模板前缀,另外模板要写在一个文件内// generates undefined error for the operator#include #include template class array { int size;public: array(); t...
分类:
编程语言 时间:
2014-07-06 19:56:39
阅读次数:
199
1.友元函数
(1)友元函数是定义在一个类外的普通函数。
友元函数和普通函数的定义一样;在类内必须将该普通函数声明为友元。
(2)友元函数不是成员函数。
不能通过对象来调用,而是直接调用;友元函数可以访问类的公有、受保护以及私有成员,但是必须通过对象、对象指针或者对象引用来访问。
2.友元函数的声明
friend 返回值类型 函数名(参数表);
在类中只需要将这个声明放置在公有部分即...
分类:
编程语言 时间:
2014-06-30 06:29:31
阅读次数:
190
友元函数:如果在本类以外的其他地方定义了一个函数(这个函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数),在类体中用friend对其进行声明,此函数就称为本类的友元函数。友元函数可以访问这个类中的私有成员。友元函数没有this指针,必须指定要访问的对象友元类:类中的所有函数都可以访问私有...
分类:
编程语言 时间:
2014-06-29 00:07:04
阅读次数:
263
总结:
1.不能重载的运算符: . 和 .* 和 ?: 和 :: 和 sizeof 和 typeid
2.重载运算符有两种基本选择: 类的成员函数或者友元函数, 建议规则如下:
运算符
建议使用
所有一元运算符
成员函数
= () [] ->
必须是成员函数
+= -= /=...
分类:
编程语言 时间:
2014-06-15 17:18:07
阅读次数:
265
第15章 友元、异常和其他
1.友元不仅有友元函数,还能是友元类
还可以将类中的某一个成员函数指定为另一个类的友元
尽管友元被授予从外部访问私有部门的权限,单并不与面向对象编程思想相愽,相反,它们提高了公有接口的灵活性
2.类的成员函数作为其他类的友元,涉及到类的声明顺序。
还有一个函数作为两个类的友元
这方面内容看P607-611
3.嵌套类:在另一个类中声明的类被称为嵌套类
类...
分类:
编程语言 时间:
2014-06-14 17:58:31
阅读次数:
246
程序代码(这段代码在vc6.0中不能编译通过,在VS中能编译通过)
#include
using namespace std;
template//类声明前加模板的声明
class Complex
{
public:
Complex( )
{
real=0;
imag=0;
}
...
分类:
其他好文 时间:
2014-06-10 08:02:29
阅读次数:
249
1、什么是友元函数?
有时候我们需要用一个普通的函数直接的调用类A的成员变量,或者类B的成员函数需要直接调用类A的成员变量,来实现数据的共享。这个时候,为了减少系统的开销,提高程序执行的效率,我们就需要使用“友元函数”的概率。即“友元”的目的是为了方便实现数据的共享。它的优点是:使得程序简洁、直观....
分类:
编程语言 时间:
2014-06-09 19:04:02
阅读次数:
581
#include
#include
using namespace std;
class CPoint//点类
{
private:
double x;//横坐标
double y;//纵坐标
public:
//使用初始化表初始化数据成员
CPoint(double xx=0,double yy=0):x(xx),y(yy){}
...
分类:
其他好文 时间:
2014-06-08 15:38:11
阅读次数:
299