C++ 不带对象的模板打印成员变量
这很奇怪(MSVC2012):C++ 不带对象的模板打印成员变量,c++,templates,C++,Templates,这很奇怪(MSVC2012): 使用名称空间std; 类MyClass { 公众: int-membervar; }; 模板结构A { 作废打印() { 库特 这段代码编译并实际输出“1”。它从哪里得到的 发生的情况是: int (MyClass::*var) = &MyClass::membervar; cout << var; int(MyClass::*var)=&MyClass::membervar; 库特 这段代码编译并实际输出“1”。它从哪里得到的 您试图打印的
使用名称空间std;
类MyClass
{
公众:
int-membervar;
};
模板结构A
{
作废打印()
{
库特
这段代码编译并实际输出“1”。它从哪里得到的
发生的情况是:
int (MyClass::*var) = &MyClass::membervar;
cout << var;
int(MyClass::*var)=&MyClass::membervar;
库特
这段代码编译并实际输出“1”。它从哪里得到的
您试图打印的是指向成员函数的指针
它被转换成了一个bool
。bool的计算结果是true
,这意味着它不是零。所以我试图做的是一个无意义的,我本以为它根本不会编译。。
int (MyClass::*var) = &MyClass::membervar;
cout << var;
std::ostream::operator<<(bool);