2016年6月14日

派生类的拷贝中记得拷贝基类的内容(手写的话)

摘要: 如果你没有new,可以使用默认的拷贝构造函数和默认的operator=,她会自动帮你完善 手写拷贝使用的两个函数 1,拷贝构造函数 2,operator=函数 阅读全文

posted @ 2016-06-14 18:59 Kooing 阅读(358) 评论(0) 推荐(0) 编辑

在另一个类中做数据成员的对象,可以先不初始化

摘要: 在另一个类中做数据成员的对象,可以先不初始化 因为在创建A类的时候,会先调用A的构造函数,同时对B类中的b对象调用他的构造函数 下面测试代码 阅读全文

posted @ 2016-06-14 18:41 Kooing 阅读(431) 评论(0) 推荐(0) 编辑

多次继承下,最高层的子类的构造函数不需要写父类以上的构造函数

摘要: 和虚拟继承不一样,虚拟继承需要些虚基类的构造函数。 虚拟继承构造函数写法:http://www.cnblogs.com/vhyc/p/5582450.html 阅读全文

posted @ 2016-06-14 17:35 Kooing 阅读(159) 评论(0) 推荐(0) 编辑

2016年6月13日

虚拟继承中子类和父类的构造函数顺序1

摘要: 这里的inter1,2,3.要写base2的构造函数 final也写,否则里面的数据未初始化 inert2写的原因是假如有人使用直接使用inert2,里面数据就可以初始化了 总结一下,虚拟继承的基类就像一个指针一样差不多,但又有分别,因为弄了 private会使用不了数据。 以后每个要实现的类都要调 阅读全文

posted @ 2016-06-13 23:20 Kooing 阅读(428) 评论(0) 推荐(0) 编辑

安全性良好的operator=操作,和新的new方法(针对深度复制的情况)

摘要: 还有一种copy and swap的方法 这个是我用过的旧版本 以前没有特例化swap函数而导致无限重复调用的失败例子 swap(temp, *this);我貌似知道为什么不行了swap里面有temp=*this之类的语句就会调用operator=的函数然后无限重复所以要用自己特例化的swap 阅读全文

posted @ 2016-06-13 18:13 Kooing 阅读(198) 评论(0) 推荐(0) 编辑

static在类中的定义,和enum的用法

摘要: class A { // static int a = 1;//错误,静态变量在类外定义 static int a; static const int b = 1;//如果是静态成员常量,则可以在类内定义 static const int c;//也可以在外面定义 }; int A::a = 1;//类外定义静态成员变量; const int A::c = 1;//在外面定义的静态成员常量... 阅读全文

posted @ 2016-06-13 17:26 Kooing 阅读(611) 评论(0) 推荐(0) 编辑

新版本的strcpy_s

摘要: 以后指针的东西就不要用strcpy函数了,麻烦 阅读全文

posted @ 2016-06-13 17:02 Kooing 阅读(177) 评论(0) 推荐(0) 编辑

2016年6月12日

函数传参的对象问题

摘要: doSometing(A(29));// 是可以得(至少在vs)doSometing(new A(20))//如果不可以的话在堆空间中申请了 doSometing(const A& a); doSometing(A a);//和上面的一个道理,两者选其一 阅读全文

posted @ 2016-06-12 00:04 Kooing 阅读(174) 评论(0) 推荐(0) 编辑

2016年6月11日

在同个类中non-const插入const来减少重复

摘要: class A { private: std::string a; public: A(std::string b) :a(b){} const char& operator[](int b)const { std::cout //分两部分,一部分是消掉const (static_... 阅读全文

posted @ 2016-06-11 10:56 Kooing 阅读(232) 评论(0) 推荐(0) 编辑

成员函数的const不能被修改,包括指针

摘要: #include class A { private: std::string a; public: A(std::string b) :a(b){} const char& operator[](int b)const //两个const都不能少 { return a[b]; } }; int main() { A a("he... 阅读全文

posted @ 2016-06-11 10:20 Kooing 阅读(327) 评论(0) 推荐(0) 编辑

导航