【C++ Primer Plus习题】8.7

问题:




解答:

cpp 复制代码
#include <iostream>

using namespace std;

template <typename T>
T SumArray(T arr[], int n)
{
	T sum = arr[0] - arr[0];
	for (int i = 0; i < n; i++)
	{
		sum += arr[i];
	}
	return sum;
}

template <typename T>
T SumArray(T *arr[], int n)
{
	T sum = *arr[0]-*arr[0];
	for (int i = 0; i < n; i++)
	{
		sum += *arr[i];
	}
	return sum;
}

struct debts
{
	char name[50];
	double amount;
};

int main()
{
	int things[6] = { 13,31,103,301,310,130 };
	struct debts mr_E[3]=
	{
		{"Ima Wolfe",2400.0},
		{"Ura Foxe",1300.0},
		{"Iby Stout",1800.0}
	};
	double* pd[3];
	for (int i = 0; i < 3; i++)
	{
		pd[i] = &mr_E[i].amount;
	}
	cout << "things的总数为:" << SumArray(things, 6) << endl;
	cout << "debts的总数为:" << SumArray(pd, 3) << endl;


	return 0;
}

运行结果:

考查点:

  • 模版函数重载

注意:

  • 不知道具体类型,可以自己减自己赋初始值

2024年9月1日22:22:56

相关推荐
qcx232 分钟前
【AI Daily】每日Arxiv论文研读Top5-2026-05-16
人工智能·学习·ai·agent·aris
Peter·Pan爱编程6 分钟前
引用:比指针更安全的别名
c++·指针·引用·c++基础
Evand J6 分钟前
【MATLAB例程】5个UAV 分布式围捕编队运动仿真 —— 基于PID控制
开发语言·分布式·matlab
m0_502724956 分钟前
golang 、java、c++、javascript 语言switch case异同
java·javascript·c++·golang
我命由我123457 分钟前
Android Framework P1 - 低配学习 Framework 方案、开机启动 Init 进程
android·c语言·c++·学习·android jetpack·android-studio·android runtime
许长安7 分钟前
互斥锁、自旋锁、读写锁使用场景以及底层实现
c++·经验分享·笔记
Season45023 分钟前
C++11并发支持库(condition_variable | future全家桶)
java·jvm·c++
落羽的落羽33 分钟前
【项目】C++从零实现JsonRpc框架——项目引入
linux·服务器·开发语言·c++·人工智能·算法·机器学习
墨月白34 分钟前
【Python】程序设计基本方法
开发语言·python
TAN-90°-38 分钟前
Java 5——final 抽象 接口
java·开发语言