《深度探索c++对象模型》中关于求解类数据成员存放顺序
《深度探索c++对象模型》中关于求解类数据成员存放顺序例子如下:
class test_class{public: int _mem2; int _mem1;};template<typename classtype, typename datatype1, typename datatype2>char* access_order(datatype1 classtype::*mem1, datatype2 classtype::*mem2){ return mem1 < mem2 ? "mem1 first" :"mem2 first";}int main(int argc, char* argv[]){ std::cout << access_order(&test_class::_mem1, &test_class::_mem2) << std::endl;}
test_class a;int test_class::*mem1 = &test_class::_mem1;int test_class::*mem2 = &test_class::_mem2;a.*mem1 = 1; //相当于 a.mem1 = 1;a.*mem2 = 2; //相当于 a.mem2 = 2;
[解决办法]
楼主,你用的编译器和那书的作者一致么?你这样就是死读书,读死书了
[解决办法]
你的意思我明白,但是没必要这么麻烦啊
class test_class{public: int _mem2; int _mem1;};int main(int argc, char* argv[]){ test_class t; cout<<hex<<&t._mem1<<endl<<&t._mem2<<endl;}