#include<iostream>intfact(int val){
int ret = 1;
while (val > 1)
{
ret *= val;
--val;
}
return ret;
}
intmain(){
int value = 0;
int result = 0;
std::cout << "Please enter a value: ";
std::cin >> value;
result = fact(value);
std::cout << "The result is " << result << std::endl;
system("pause");
return0;
}
// 文件名 fact.cc#include"Chapter6.h"intfact(int val){
int ret = 1;
while (val > 1)
{
ret *= val;
--val;
}
return ret;
}
// 文件名 factMain.cc#include<iostream>#include"Chapter6.h"intmain(){
int value = 0;
int result = 0;
std::cout << "Please enter a value: ";
std::cin >> value;
result = fact(value);
std::cout << "The result is " << result << std::endl;
system("pause");
return0;
}
Exercises Setion 6.2.1
Ex6.10
#include<iostream>usingnamespace std;
voidswap_int(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
intmain(){
int value1 = 1, value2 = 2;
int *a = &value1;
int *b = &value2;
swap_int(a, b);
cout << value1 <<" " << value2 << endl;
}
Exercises Section 6.2.2
Ex6.11
voidreset(int &i){
i = 0;
}
Ex6.12
#include<iostream>usingnamespace std;
voidswap_int(int &a, int &b){
int temp = a;
a = b;
b = temp;
}
intmain(){
int value1 = 1, value2 = 2;
swap_int(value1, value2);
cout << value1 <<" " << value2 << endl;
}
Ex6.13
voidf(T): 函数 f 有一个类型 T 的参数,返回值类型为 void
void f(T&): 函数有一个类型 T& 的参数,返回值类型为 void
voidf();
voidf(int);
voidf(int, int);
voidf(double, double = 3.14);
a) f(2.56, 42); // illegal;the call is ambiguous
b) f(42); // f(int)
c) f(42, 0); // f(int, int)
d) f(2.56, 3.15); // f(double, double)
Exercises Section 6.6.1
Ex6.52
voidmanip(int, int);
double dobj;
a) manip('a', 'z'); // rank 3
b) manip(55.4, dobj); // rank 4
Ex6.53
a) // 如果调用函数时,实参有常量引用类型,则调用第二条语句intcalc(int&, int&);
intcalc(constint&, cosnt int&);
b) // 如果调用函数时,实参指针指向的变量为常量,则调用第二条语句intcalc(char*, char*);
intcalc(constchar*, constchar*);
c) // 指针的顶层const不算重载,重复定义(非法) intcalc(char*, char*);
intclac(char* const, char* const);
Exercises Section 6.7
Ex6.54
intf(int, int);
using pf = decltype(f) *;
vector<pf> v;
Ex6.55
// 加法intadd(int a, int b){
return a + b;
}
// 减法intsubtract(int a, int b){
return a - b;
}
// 乘法intmultiply(int a, int b){
return a * b;
}
// 除法intdivide(int a, int b){
return b != 0 ? a / b : 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端