类中的函数重载

函数重载回顾:

- 函数重载的本质为相互独立的不同函数;

-C++通过函数名和函数参数确定函数调用.

-无法直接通过函数名得到重载函数的入口地址.

-函数重载必然发生在同一作用域.

类中的重载:

-构造函数的重载;

-普通成员函数的重载

-静态成员函数的重载

Question:

全局函数,普通成员函数以及静态成员函数之间是否可以构成重载.

万变不离其宗:

1.重载函数的本质为多个不同的函数.

2,函数名和参数列表是唯一的标识符;

3.函数重载必然发生在同一作用域.

深度的意义:

-通过函数名函数功能进行提示;

-通过参数列表对函数用法进行提示;

-扩展系统中的已经存在的函数功能.

重载的意义分析.cpp:

 1 #include <stdio.h>
 2 #include <string.h>
 3
 4 char* strcpy(char* buf, const char* str, unsigned int n)
 5 {
 6     return strncpy(buf, str, n);
 7 }
 8
 9 int main()
10 {
11     const char* s = "D.T.Software";
12     char buf[8] = {0};
13
14     //strcpy(buf, s);
15     strcpy(buf, s, sizeof(buf)-1);
16
17     printf("%s\n", buf);
18
19     return 0;
20 }

思考:

重载能够扩展系统中的已经存在的函数功能;

那么重载也能够扩展其他的功能吗?

下面的复数解决方案是否可行?

类的成员函数之间可以进行重载;

重载必须发生在同一个作用域中;

全局函数和成员函数不能构成重载关系;

重载的意义在于扩展已经存在的功能.

原文地址:https://www.cnblogs.com/lemaden/p/10117983.html

时间: 2024-08-29 09:01:49

类中的函数重载的相关文章

第29课 类中的函数重载

函数重载回顾: 类中的重载: 万变不离其宗: 类中的普通成员函数和静态成员函数也够成重载. 示例程序: 1 #include <stdio.h> 2 3 class Test 4 { 5 int i; 6 public: 7 Test() 8 { 9 printf("Test::Test()\n"); 10 this->i = 0; 11 } 12 13 Test(int i) 14 { 15 printf("Test::Test(int i)\n"

c++中的函数重载

c++中的函数重载 什么是函数重载 重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数.类型或者顺序)必须不同,这组函数被称为重载函数. 函数重载的作用 重载函数常用来实现功能类似而所处理的数据类型不同的问题,能减少函数名的数量,提高程序的可读性. 重载函数的构成说明 定义一个类,添加一系列函数名相同的函数,但参数形式各有不同,测试一下能否构成重载. #include <iostream> using names

第九周项目1-复数类中的运算符重载(续)

在复数类中的运算符重载基础上 (1)再定义一目运算符 -,-c相当于0-c. (2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年05月14日 * 版本号:v1.0 */ #include <iostream> using

第九周项目3-分数类中的运算符重载(续)

在分数类中的运算符重载基础上 (1)定义分数的一目运算+和-,分别代表分数取正和求反,将"按位取反运算符"~重载为分数的求倒数运算. (2)定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年05月14日 * 版本号:v1.0 *

第八周项目3-分数类中的运算符重载

实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).比较(6种关系)的运算.可以在第4周分数类代码的基础上开始工作. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年04月29日 * 版本号:v1.0 */ #include <iostream> using namespace std; class CFraction { private:

第八周项目 二 【项目2-Time类中的运算符重载】

[项目2-Time类中的运算符重载] 实现Time类中的运算符重载. [cpp] view plaincopyprint? class CTime { private: unsigned short int hour;    // 时 unsigned short int minute;  // 分 unsigned short int second;  // 秒 public: CTime(int h=0,int m=0,int s=0); void setTime(int h,int m,i

【java&amp;c++】父子类中同名函数的覆盖问题

java和c++两门语言对于父子类中同名函数具有不同的处理方式. 先上两段代码: C++: class Basic { public: void test(string i){ cout << "basic str" <<endl; } void test(int i){ cout << "basic" <<endl; } }; class Senior : public Basic { public: void te

第八周 项目三 (1)分数类中的运算符重载

[项目3-分数类中的运算符重载] (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).比较(6种关系)的运算.可以在第4周分数类代码的基础上开始工作. [cpp] view plaincopyprint? class CFraction { private: int nume;  // 分子 int deno;  // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的实现及用于测试的main()函数 /* *Copyright (c)2

第八周项目三-分数类中的运算符重载

实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).比较(6种关系)的运算.可以在第4周分数类代码的基础上开始工作. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:赵嵩 * 文件:Demo.cpp * 完成时间:2015年05月16日 * 版本号:v1.0 */ #include <iostream> using namespace std; class CFraction { private: