"1"代表什么意思,该如何处理
"1"代表什么意思
#include<iostream>
using namespace std;
class A
{
public:
int i,j,k;
};
class B
{
public:
private:
};
int main()
{
cout<<sizeof(A)<<endl;
cout<<sizeof(B)<<endl;
cout<<&C::fun<<endl
return 0;
}
答案是12,1,1;
第一个12可以理解,第二个1不理解,第三个1非静态函数不分配内存空间知道,但为什么地址是1呢?1代表地址不确定?
------解决方案--------------------
第2个是1因为你的类是一个空类,里面什么都没有,编译器为了方便找到这样的类,所以必须给它分配个内存空间。第3个我也不知道你的C是哪里来的呢
------解决方案--------------------
2.完整类型空类大小非0;
3. &C::fun 得到的是成员指针.
std::ostream 没有重载 成员指针类型的 << 操作.
so 转换成 bool 类型,输出.
非0 则真,输出1
#include<iostream>
using namespace std;
class A
{
public:
int i,j,k;
};
class B
{
public:
private:
};
int main()
{
cout<<sizeof(A)<<endl;
cout<<sizeof(B)<<endl;
cout<<&C::fun<<endl
return 0;
}
答案是12,1,1;
第一个12可以理解,第二个1不理解,第三个1非静态函数不分配内存空间知道,但为什么地址是1呢?1代表地址不确定?
------解决方案--------------------
第2个是1因为你的类是一个空类,里面什么都没有,编译器为了方便找到这样的类,所以必须给它分配个内存空间。第3个我也不知道你的C是哪里来的呢
------解决方案--------------------
2.完整类型空类大小非0;
3. &C::fun 得到的是成员指针.
std::ostream 没有重载 成员指针类型的 << 操作.
so 转换成 bool 类型,输出.
非0 则真,输出1