一个最基础的有关问题搞糊涂了,类里构造函数中的指针
一个最基础的问题搞糊涂了,类里构造函数中的指针。
一个泛型的类
main.cpp中调用
调用中,new的时候应该执行了构造函数,执行构造函数时打印出的结果是对的, 0,0 1,1 2,2之类的。
但是对变量pCC中属性访问时,发现pCC->m_nBufLength 是对的,而 pCC->m_pBuf中的值是错的。求解。
------解决方案--------------------
大哥,改成*(pCC->m_pBuf++)吧,你打印的是buffer的指针地址啊。
------解决方案--------------------
printf("%d\r\n", *(pCC->m_pBuf++));
打印指针的内容
------解决方案--------------------
printf("%d\r\n", (int)pCC->m_pBuf[i]);
------解决方案--------------------
确实,你打印错了
一个泛型的类
- C/C++ code
template<class T> cc<T>::cc() { 。。。。。。 unsigned char * m_pBuf; unsigned int m_nBufLength; 。。。。。。 m_nBufLength=11; unsigned char uc[10] = { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09 }; m_pBuf= uc; for(int i=0;i<10;i++) { printf("%d,%d\r\n", m_pBuf[i],uc[i]); } }
main.cpp中调用
- C/C++ code
cc<unsigned char> *pCC=new cc<unsigned char>() ; printf("%d\r\n",pCC->m_nBufLength ); for(int i=0;i<10;i++) { printf("%d\r\n", pCC->m_pBuf++); }
调用中,new的时候应该执行了构造函数,执行构造函数时打印出的结果是对的, 0,0 1,1 2,2之类的。
但是对变量pCC中属性访问时,发现pCC->m_nBufLength 是对的,而 pCC->m_pBuf中的值是错的。求解。
------解决方案--------------------
大哥,改成*(pCC->m_pBuf++)吧,你打印的是buffer的指针地址啊。
------解决方案--------------------
printf("%d\r\n", *(pCC->m_pBuf++));
打印指针的内容
------解决方案--------------------
printf("%d\r\n", (int)pCC->m_pBuf[i]);
------解决方案--------------------
确实,你打印错了