Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
code_shenbing
cpp_17_template
提交
5b509c8c
C
cpp_17_template
项目概览
code_shenbing
/
cpp_17_template
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cpp_17_template
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5b509c8c
编写于
4月 09, 2023
作者:
W
wsb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
模板类和模板函数的使用示范
上级
24b955e7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
47 addition
and
2 deletion
+47
-2
CMakeLists.txt
CMakeLists.txt
+1
-1
main.cpp
main.cpp
+22
-1
templateClass.cpp
templateClass.cpp
+24
-0
未找到文件。
CMakeLists.txt
浏览文件 @
5b509c8c
...
@@ -3,4 +3,4 @@ project(cpp_17_template)
...
@@ -3,4 +3,4 @@ project(cpp_17_template)
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD 11
)
add_executable
(
cpp_17_template main.cpp
)
add_executable
(
cpp_17_template main.cpp
templateClass.cpp
)
main.cpp
浏览文件 @
5b509c8c
#include <iostream>
#include <iostream>
#include "templateClass.cpp"
using
namespace
std
;
//定义函数模板
template
<
typename
T
>
//这部分为函数模板申明的标准格式,其中的T可以随便叫一个其他的合法的名称
inline
T
sum
(
T
a
,
T
b
)
{
//使用函数模板定义的类型到函数中,当实际调用时会根据实际的参数类型对占位符T进行替换。
return
a
+
b
;
}
int
main
()
{
int
main
()
{
std
::
cout
<<
"Hello, World!"
<<
std
::
endl
;
//使用模板函数
int
SUM
=
sum
(
22
,
33
);
cout
<<
SUM
<<
endl
;
//使用模板类
templateClass
<
double
>
tc
;
//指定类型为double
//调用模板类的方法
cout
<<
"两数之和为:"
<<
tc
.
sum
(
23.56
,
32
)
<<
endl
;
cout
<<
"面积为:"
<<
tc
.
area
(
55.98
,
79.898
)
<<
endl
;
return
0
;
return
0
;
}
}
templateClass.cpp
0 → 100644
浏览文件 @
5b509c8c
//
// Created by 11010 on 2023/4/9.
//注意:模板的类和函数的申明与定义均放在.cpp文件中,不然找不到定义。
//
template
<
class
T
>
//申明这一句之后,后面就可以使用这里的类型了
class
templateClass
{
public:
T
sum
(
T
a
,
T
b
);
//定义模板函数: 计算两数之和
T
area
(
T
len
,
T
width
);
//定义模板函数:计算面积
};
template
<
class
T
>
T
templateClass
<
T
>::
sum
(
T
a
,
T
b
)
{
return
a
+
b
;
}
template
<
class
T
>
T
templateClass
<
T
>::
area
(
T
len
,
T
width
)
{
return
len
*
width
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录