实例化C++模版类,使代码易于跟踪调试

本文介绍了一种在VS.NET 2003中调试STL模板类的方法,通过实例化模板类并添加常量方法,使得在调试过程中可以直接查看模板类内部的数据,避免了大量的调试输出语句。

STL 模版类有时候难以跟踪,通过下面的方法,将使这些代码在调试时能够被调试器显示其内容

将我们需要跟踪的模版类,进行实例化,并添加标记为常量的方法,

在 vs.net 2003 中,进行调试时,可以直接在调试的变量监视窗口中输入表达式调用这些方法,

便能显示你想查看的数据,调试起来非常方便, 避免了写很多的调试输出语句

需要注意的是,添加的这些方法必须在代码中以调用的方式进行引用,
否则,编译器会聪明的认为这些函数没有用,给优化

下面的例子,使得 vecotr 中元素的值,可以在跟踪时进行显示

class VecString : public vector < string >
{
public:
 VecString::size_type size() const
 {
  return vector < string >::size();
 }

 const string& operator [] ( VecString::size_type idx ) const
 {
  return vector < string >::operator [] ( idx );
 }

 const char* ele( VecString::size_type idx ) const
 {
  return (*this)[idx].c_str();
 }
};

 

在调试器的监视窗口中输入:

vs[0] 或 vs.ele(0) 或 vs.size() 都能看到实际的值

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值