C++类成员函数定义方法详解 您所在的位置:网站首页 类中的函数称为方法 C++类成员函数定义方法详解

C++类成员函数定义方法详解

2023-07-26 00:06| 来源: 网络整理| 查看: 265

首页 教程 VIP会员 辅导班 嵌入式学习路线 首页 C语言教程 C++教程 Python教程 Java教程 Linux入门 更多>> 首页 > 编程笔记 C++类成员函数定义方法详解 类成员函数定义与常规函数类似,除特殊情况外,它们有一个包含返回类型(可能为 void)、函数名和形参列表(可能为空)的函数头。执行函数动作的语句包含在一对大括号中,跟在函数头后面。 我们在《类对象的创建和使用》一节定义 Circle 类时,已经在类声明本身中定义了它的两个成员函数。当一个类函数定义在类声明中时,它被称为内联函数。 内联函数提供了在类声明中包含函数信息的便捷方式,但只能在函数体非常短(通常是单行)时使用。当函数体更长时,则可以在函数的类声明中放置一个原型,而不是函数定义本身。然后,将函数定义放在类声明之外,要么跟在它后面,要么放在一个单独的文仵中。 虽然 Circle 类中的两个函数足够短,可以写成内联函数,但是也可以将它们重写为常规函数,定义在类声明之外。在类声明中,函数将被以下原型所替代:

void setRadius(double); double getArea();

按照类声明,我们将放置一个包含以下函数定义的函数实现部分: void Circle::setRadius(double r) { radius = r; } double Circle::getArea() { return 3.14 * pow(radius, 2); } 可以看到,以上函数实现语句和普通函数看起来是一样的,区别在于,在函数返回类型之后函数名之前,放置了类名和双冒号(::)。:: 符号称为作用域解析运算符。它可以用来指示这些是类成员函数,并且告诉编译器它们属于哪个类。

注意,类名和作用域解析运算符是函数名的扩展名。当一个函数定义在类声明之外时,这些必须存在,并且必须紧靠在函数头中的函数名之前。

以下示例通过对比,清晰说明了当类函数定义在类声明之外时,该如何使用作用域解析运算符:

double getArea () //错误!类名称和作用域解析运算符丢失 Circle :: double getArea () //错误!类名称和作用域解析运算符错位 double Circle :: getArea () //正确

下面程序在类声明之外定义了成员函数: // This program demonstrates a simple class with member functions defined outside the class declaration. #include #include using namespace std; //Circle class declaration class Circle {     private:         double radius; // This is a member variable.     public:         void setRadius(double); // These are just prototypes         double getArea(); // for the member functions. }; void Circle::setRadius(double r) {     radius = r; } double Circle::getArea() {     return 3.14 * pow(radius, 2); } int main() {     Circle circle1,circle2;     circle1.setRadius(1); // This sets circle1's radius to 1.0     circle2.setRadius(2.5); // This sets circle2's radius to 2.5     cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有