16.3节练习
2016-07-02 21:45
302 查看
练习16.48 编写你自己版本的debug_rep函数。
template <typename T> string debug_rep(const T&);
template <typename T> string debug_rep(T*);
string debug_rep(const string&);
string debug_rep(char*);
string debug_rep(const char*);
练习16.49&&16.50 解释下面的每个调用会发生什么?并验证解释原因。
#include <iostream>
#include <string>
using namespace std;
template <typename T>
void f(T)
{
cout << "used f(T)" << endl;
}
template <typename T>
void f(const T*)
{
cout << "used f(const T*)" << endl;
}
template <typename T>
void g(T)
{
cout << "used g(T)" << endl;
}
template <typename T>
void g(T*)
{
cout << "used g(T*)" << endl;
}
int main()
{
int i = 42, *p = &i;
const int ci = 0, *p2 = &ci;
g(42); //g(T)
g(p); //g(T*)
g(ci); //g(T)
g(p2); //g(T*)
f(42); //f(T)
f(p); //f(T)...T的类型为int*,更特例化
f(ci); //f(T)
f(p2); //f(const T*)
}
template <typename T> string debug_rep(const T&);
template <typename T> string debug_rep(T*);
string debug_rep(const string&);
string debug_rep(char*);
string debug_rep(const char*);
练习16.49&&16.50 解释下面的每个调用会发生什么?并验证解释原因。
#include <iostream>
#include <string>
using namespace std;
template <typename T>
void f(T)
{
cout << "used f(T)" << endl;
}
template <typename T>
void f(const T*)
{
cout << "used f(const T*)" << endl;
}
template <typename T>
void g(T)
{
cout << "used g(T)" << endl;
}
template <typename T>
void g(T*)
{
cout << "used g(T*)" << endl;
}
int main()
{
int i = 42, *p = &i;
const int ci = 0, *p2 = &ci;
g(42); //g(T)
g(p); //g(T*)
g(ci); //g(T)
g(p2); //g(T*)
f(42); //f(T)
f(p); //f(T)...T的类型为int*,更特例化
f(ci); //f(T)
f(p2); //f(const T*)
}
相关文章推荐
- 慢启动以及传输原理
- OPENSSL——菜鸟的问题记录
- [Array]Two Sum
- Codeforces Round #360 (Div. 2) C D E
- [Array]Two Sum
- jquery onready的问题
- jquery遍历数组的问题
- 【JavaWeb开发】Eclipse或MyEclipse配置Tomcat
- vs2008调试 Release(链接器来生成调试信息)
- 尝试一下: 仅加密已用磁盘空间
- 可能是讲解Android事件分发最好的文章
- 中国剩余定理
- Python开发的10个小贴士
- C++ DLL导出函数的两种方法(导出序号那种方法,别人看不到函数名)
- firstChild,nextSibling,childNodes等属性的问题
- 【HTML】HTML详解——标签
- 判断number时最好用正则
- SimpleDateFormat和Locale.getDefault()的用法
- 进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)
- 在Linux上以服务的方式运行ASP.NET Core站点