用C++实现类似JAVA类中的toString函数
2010-12-17 22:57
471 查看
最近在开发时,发现C++的类中没有JAVA类中toString函数,打印对象的信息十分麻烦,就用宏自己实现了一个
主要代码如下
#define PRINT_CLASS_INFO_BEGIN(sstream, className) sstream << "ClassName:" << #className << ", Addr:" << this << "[";
#define PRINT_CLASS_PARA(sstream, para) sstream << #para << " = " << para;
#define PRINT_CLASS_INFO_END(sstream) sstream << "]" << std::endl;
class MyClass
{
public:
virtual string toString();
private:
int m_iPara1;
string m_strPara2;
}
string MyClass::toString
{
stringstream sstream;
PRINT_CLASS_INFO_BEGIN(sstream, MyClass)
PRINT_CLASS_PARA(sstream, m_iPara1)
PRINT_CLASS_PARA(sstream, m_strPara2)
PRINT_CLASS_INFO_END(sstream)
return sstream.str();
}
主要代码如下
#define PRINT_CLASS_INFO_BEGIN(sstream, className) sstream << "ClassName:" << #className << ", Addr:" << this << "[";
#define PRINT_CLASS_PARA(sstream, para) sstream << #para << " = " << para;
#define PRINT_CLASS_INFO_END(sstream) sstream << "]" << std::endl;
class MyClass
{
public:
virtual string toString();
private:
int m_iPara1;
string m_strPara2;
}
string MyClass::toString
{
stringstream sstream;
PRINT_CLASS_INFO_BEGIN(sstream, MyClass)
PRINT_CLASS_PARA(sstream, m_iPara1)
PRINT_CLASS_PARA(sstream, m_strPara2)
PRINT_CLASS_INFO_END(sstream)
return sstream.str();
}
相关文章推荐
- Java实现类似C/C++中的__FILE__、__FUNC__、__
- 在Java中实现类似C/C++中#ifdef...#endif预编译宏的效果
- Delphi中实现C++/Java类似静态变量的功能
- C++实现类似JAVA的反射
- c++中实现类似java printStackTrac…
- Java实现类似C/C++中的__FILE__、__FUNC__、__LINE__等,主要用于日志等功能中。
- C++ 实现类似java c#List的方法 boost::any的使用
- 在C++中实现类似Java的“synchronized”
- C++实现类似JAVA反射的基本功能
- C++ 实现类似Qt和Java的线程用法
- C++实现类似JAVA的反射 .
- Delphi中实现C++/Java类似静态变量的功能
- C++中如何实现类似JAVA中的反射
- C++如何实现类似JAVA中加了FINAL关键字的类
- C++中实现类似java中接口的功能
- 如何用Java实现类似c/c++指针效果
- Java实现类似C/C++中的__FILE__、__FUNC__、__
- JS类似JAVA的replaceAll()的实现
- Java中利用MessageFormat对象实现类似C# string.Format方法格式化
- 通过JNI实现Java和C++的相互调用