#include <cstdlib>
#include <iostream>
using namespace std;
class Dummy {
private:
string callfuncname;
public:
Dummy(string name){
callfuncname=name;
cout<<callfuncname<<"In"<<endl;
};
~Dummy(){
cout<<callfuncname<<"Out"<<endl;
};
};
#define MYMACRO(funcName) Dummy myfake(funcName)
int func1(){
MYMACRO(__FUNCTION__); return 1;
}
int func2(){
MYMACRO(__FUNCTION__);return 2;
}
int main(int argc, char** argv) {
MYMACRO(__FUNCTION__);
func1();
func2();
return 0;
}
//输出
mainIn
func1In
func1Out
func2In
func2Out
mainOut
该博客探讨了C++中宏定义MYMACRO如何创建并管理Dummy对象的生命周期。在main函数及func1、func2内部,MYMACRO通过传入当前函数名来实例化对象,并在析构时打印出对应的功能名,展示了C++对象的构造与析构过程。
640

被折叠的 条评论
为什么被折叠?



