2016-03-04 49 views
0

我正在寻找一种方式来打印这些实例的构造函数被调用,从构造函数中的变量的名称对象的名称:如何打印使用构造

#include <iostream> 

struct A { 
    A() { 
     std::cout << "variable name = " /*magic here*/ << "\n"; 
    } 
}; 

int main() { 
    A abc; // should output "variable name = abc" 
    A def; // should output "variable name = def" 
} 

这是可能的如何?

+0

背蜱被用于行代码,只使用4空间主导缩进的代码块。 – crashmstr

+2

这个问题措辞很差。我们不知道你的意思。以代码形式提供您的意思。我们不知道'cout << [object]'是什么意思。 –

+0

可能'cout << this;'? –

回答

0

我不认为有没有办法做到这一点,而不使用宏。

如果你的类有一个构造函数接受一个const char *,那么你可以使用一个假的构造函数宏将变量名传递给实际的构造函数。我不确定为什么你想这样做,这是一个非常丑陋的解决方案。

#define CONSTRUCT(type, name) type name(#name)