C++类成员函数重载与友元详解

需积分: 35 0 下载量 161 浏览量 更新于2024-08-24 收藏 1.05MB PPT 举报
本篇C++课件主要讲解了重载为类的成员函数以及友元函数的相关概念。重载运算符是C++中一个重要特性,允许程序员自定义特定运算符的行为,如在类`A`中,通过`operator + (A &);`来实现类`A`的加法运算符重载。这个过程涉及到的关键字包括`operator`、返回类型、运算的对象等,返回类型通常与原运算符对应,函数名则由运算符和`operator`组成。 友元函数则是在类外部定义的特殊函数,它能够访问类的私有和保护成员,打破了类的封装性和隐蔽性。友元函数的声明需要在类体内部使用`friend`关键字,形式如`friend <type> FuncName(<args>)`。例如,`floatVolume(A &a)`是一个友元函数,它可以访问`A`类的私有变量`x`和`y`。友元函数的使用需要将对象名或引用作为参数传递,以便访问其成员。 友元函数和普通成员函数的主要区别在于: 1. 友元函数可以在类定义内外定义,而成员函数必须在类体内定义; 2. 友元函数可以访问类的所有成员(公有、私有和保护),而普通函数仅限于公有成员; 3. 友元函数调用时,可以直接使用对象名,无需`this`指针,但不能像成员函数那样通过对象引用隐式访问。 在示例代码中,类`A`定义了成员函数`Sum()`和友元函数`floatSum(A&)`。`floatSum(A&)`可以访问类`A`的`x`和`y`,在`main()`函数中,可以通过`t1.Sum()`和`Sum(t2)`分别调用这两种不同类型的`Sum()`函数。 总结来说,本课件内容涵盖了C++中运算符重载和友元函数的定义、语法以及它们在类设计中的应用,这对于理解和编写高效、灵活的C++代码至关重要。