曾经犯过的错误c++
来源:互联网 发布:php跳转token设置过期 编辑:程序博客网 时间:2024/06/01 19:56
1.无限构造
4.子类给父类成员初始化列表
struct A{A(A a){}};
-----------------------------------------------------------------
struct A{A(const A& a);}
2.switch case块里定义数据
int a = 0;switch(a){case 0:int b = 0;break;deafut:break;}-----------------------------------------------------------------
int a = 0;switch(a){case 0:{int b = 0;}break;deafut:break;}
3.namespace 里包含库头文件
namespace _Liuxb{#include <iostream>}-----------------------------------------------------------------
#include <iostream>namespace _Liuxb{}
4.子类给父类成员初始化列表
struct B{int b;};struct D{D():b(0),d(1){}int d;};
-----------------------------------------------------------------
实事上子类对象初始化过程是父类先初始化列表,后完成父类初始化函数实体,然后子类对象初始化列表,完成子类初始化函数实体。上述做法错误的原因不知道。
但对象的初始化从此例看来类似于先将一段内存覆盖上指定值,后调用初始化函数实体。就像:
memset(p,0,sizeof(*p));
init(p);
我开始以为产生错误的原因是当时this指针还没产生,无法计算出父类成员的地址。后来发现不是,虽然此时还没有this指针。但是可以拿b给d赋值。this指针在子类初始化列表之后,初始化函数实体运行之前就已经存在。
struct D{D():d(b){}int d;};或许只是单纯的语法禁止该用法。
- 曾经犯过的错误c++
- 笔记_曾经犯过的错误
- 那些我曾经犯过的低级编程错误
- 犯过的错误
- 犯过的错误
- 犯过的错误
- 犯过的错误
- 此篇只为记录曾经犯过的低级错误
- [提醒]曾经犯的谜之错误
- 那些年我犯过的c++sb错误
- 个人编程犯过的错误
- 我犯过的错误-代码易错点
- JAVA基础方面犯过的错误
- 平时犯过的小错误
- JavaScript犯过的错误汇总
- 使用BOOL变量犯过的错误
- 工作中的犯过的错误总结
- 字符上犯过的那些错误
- 现实迷途 第九章 N夜情(上)
- HashMap和Hashtable及HashSet的区别
- 学习笔记43(成为软件高手的7个致命忌讳)
- 20年架构师写给程序员的一封信
- 结构体的伸缩数组
- 曾经犯过的错误c++
- 基础算法系列总结:回溯算法(解火力网问题)
- 10.7 安装 xcode 4.2失败的问题
- Java的内存结构(Memory Structure)和垃圾收集(Garbage Collection)图解
- 用函数在Excel中从文本字符串提取数字
- 抽象类与接口的区别
- 20年工作经验的架构师写给程序员的一封信
- 如何在Java中选择Map/List/Set
- android图形系统详解五:Android绘制模式