|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <iostream.h>
- class B
- {
- private:
- int m_nData;
- public:
- B( int nData = 0)
- {
- m_nData = nData;
- cout << "B()" << endl;
- }
- //如果自定义的拷贝构造函数 那么系统不提供默认的拷贝构造函数(做了逐域赋值)
- //适用情况 有指针且 指向分配的内存
- B( const B& obj )
- {
- *this = obj;
- cout << "B copy constructor ()" << endl;
- }
- B SetObj( B obj)
- {
- return obj;
- }
- };
- int main(int argc, char* argv[])
- {
- B theB(10);
- cout << hex << &(theB.SetObj(theB)) << endl;
- return 0;
- }
复制代码 我想问下theB的地址和输出的地址 中间那4字节被什么吃了 我跟了一圈没发现用到过中间那个地址
我系统中 中间那地址是0012ff78
也就是
&theB = 12ff7c
&(theB.SetObj(theB)) = 12ff74
中间地址78全C 也不像是因为拷贝构造了0ah
蛋疼啊 附图最好 谢谢了 |
|