C++记录
2014-08-10 23:19
113 查看
1, a++与++a
![](http://images.cnitblog.com/i/487479/201408/102318149908581.jpg)
2,
int a[10] ;
int* p = (int*)(&a + 1 ) ;
&a 是数组指针, 其类型为int (*)[10] , &a+1 表示 a + 10 .
a才是&a[0] .
(int*)(&a+1) - (int*)(&a) == 10
3,
在默认构造函数内部再调用带参的构造函数属用户行为而非编译器行为,亦即仅执行函数调用,而不会执行其后的初始化表达式。
只有在生成对象时,初始化表达式才会随相应的构造函数一起调用。
4,
C++中的空类,默认产生哪些类成员函数
5,
![](http://images.cnitblog.com/i/487479/201408/110004102097215.jpg)
6,
![](http://images.cnitblog.com/blog2015/487479/201503/160010118868007.jpg)
7,
![](http://images.cnitblog.com/i/487479/201408/102318149908581.jpg)
2,
int a[10] ;
int* p = (int*)(&a + 1 ) ;
&a 是数组指针, 其类型为int (*)[10] , &a+1 表示 a + 10 .
a才是&a[0] .
(int*)(&a+1) - (int*)(&a) == 10
3,
在默认构造函数内部再调用带参的构造函数属用户行为而非编译器行为,亦即仅执行函数调用,而不会执行其后的初始化表达式。
只有在生成对象时,初始化表达式才会随相应的构造函数一起调用。
struct CLS { int m_i; CLS(int i): m_i( i ) { } CLS() { CLS( 0 );//不会执行其后的初始化表达式 } }; int main(void) { CLS obj; cout << obj.m_i << endl; return 0; }
4,
C++中的空类,默认产生哪些类成员函数
class Empty { public: Empty(); //缺省构造函数 Empty(const Empty &); //拷贝构造函数 ~Empty(); //析构函数 Empty & operator=(const Empty &); //赋值运算符 Empty* operator&(); //取址运算符 const Empty* operator&() const; //取址运算符const };
5,
![](http://images.cnitblog.com/i/487479/201408/110004102097215.jpg)
// 功能:由src所指内存区域复制count个字节到dest所指内存区域。 // 说明:src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针 void *memmove(void *dest , const void *src , size_t count) { assert( (dest != NULL) && (src != NULL)); //安全检查 assert( count > 0 ); char *psrc = (char *) src; char *pdest = (char *) dest; //检查是否有重叠问题 if( pdest < psrc ) { //正向拷贝 while( count-- ) *pdest++ = *psrc++; } else if( psrc < pdest ) { //反向拷贝 psrc = psrc + count - 1; pdest = pdest + count - 1; while( count-- ) *pdest-- = *psrc--; } return dest; } // 功能:由src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。 // 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针 void *memmcpy(void *dest , const void *src , size_t count) { assert( (dest != NULL) && (src != NULL)); //安全检查 assert( count > 0 ); char *psrc = (char *) src; char *pdest = (char *) dest; while( count-- ) *pdest++ = *psrc++; return dest; }
6,
![](http://images.cnitblog.com/blog2015/487479/201503/160010118868007.jpg)
7,
![](http://images.cnitblog.com/blog2015/487479/201504/081155510558075.png)
相关文章推荐
- 记录一个新人的C++之路,以供后来的新人学习
- MSN上关于C++多重继承和多态的聊天记录
- [c++]记录Windows程序“应用程序错误”到异常日志
- C++备忘录(记录一些不常使用的语法规则)
- 由C/C++的开源项目和开源协议说开去——和CSDN博客专家王绍全的讨论记录
- 在C++中使用Apache的Log4cxx记录日志
- 在C++中使用Apache的Log4cxx记录日志
- 从今天开始,我要记录自己C++的成长!
- 记录自己学习C++的点滴,(高手请指点) 偶能承受打击
- MSN上关于C++的异常处理和名字空间的聊天记录
- Effective C++学习记录之Things To Remember
- [c++]记录Windows程序“应用程序错误”到异常日志
- [c++]记录Windows程序“应用程序错误”到异常日志
- Berkely DB C++演示代码(写入重复记录)
- 记录我在C++学习中的点点滴滴!
- 开始记录学习C++的历程
- 关于c++的学习情况,不再更新了,因为找到了更好的笔记记录工具
- 讨论记录之C++细节
- 由C/C++的开源项目和开源协议说开去——和CSDN博客专家王绍全的讨论记录
- 这篇文章记录C++中struct与class的区别