摘要: 注意:polymorphic base class 应该具有虚析构函数,如果class带有任何virtual函数,也应具有虚析构函数 class不具备polymorphic属性则不应该声明virtual 析构函数 1.老生常谈,如果一个类需要被使用为base calss 则为它声明 "virtual 阅读全文
posted @ 2017-07-30 16:03 FeckCode 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 1.为驳回编译器自动生成函数的技能,可把这些函数的声明放入private,如果是继承类型可把base class的这些函数声明private,可在编译期间得到警告 阅读全文
posted @ 2017-07-30 14:56 FeckCode 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 1.编译器可以暗自位class生成default构造,copy构造,copy assigned函数,析构函数; note1:如果没有自定义构造函数,编译器会为你生成合成默认构造函数.如果有定义则不生成 note2:如果没有定义copy构造和copy assigned函数,编译器也会为你生成合成默认的 阅读全文
posted @ 2017-07-30 14:42 FeckCode 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1.为内置对象进行 "手工初始化",因为C++不保证初始化他们(内置类型在赋值与初始化销毁基本相同,最好还是进行初始化列表),在内置类型过多情况下,可选择private函数统一初始化(赋值与初始化效率持平) 2.构造函数最好使用成员初始化列表方式,构造函数体内属于赋值操作,且初始化列表最好与声明变量 阅读全文
posted @ 2017-07-29 23:06 FeckCode 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1.尽量使用const修饰不会赋值操作的变量,防止 "无意义行为" 2.const成员函数遵守: bitwise constness 法则(只要函数内部不改变成员变量的,都是允许const修饰函数的) 3.如果某些成员在const函数内部总是会被改变 可以在变量声明处添加 “mutable”声明为多 阅读全文
posted @ 2017-07-29 19:32 FeckCode 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1.首先#define 定义不重视作用域(scope),虽然可以#undef控制,但是不美观,还存在多次替换的问题,以及没有任何封装性. 2.const XXX_XX,保证其常量性以及可控的作用域,如果是指针类型则 const XXXX* const ptr="hello world",也可以完美替 阅读全文
posted @ 2017-07-29 19:12 FeckCode 阅读(197) 评论(0) 推荐(0) 编辑
摘要: C++由4个部分组成: 1.C part of C++; 2.Object-Oriented C++; 3.Template C++; 4.STL 请记住:C++的高效编程视状况而变化,取决你使用C++的那一部分. 阅读全文
posted @ 2017-07-29 18:51 FeckCode 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 10 int main(int argc, char *argv[]) 11 { 12 13 try 14 { 15 throw std::range_error("... 阅读全文
posted @ 2017-07-29 15:41 FeckCode 阅读(3343) 评论(0) 推荐(0) 编辑
摘要: 普通函数指针: "return_type (*ptr_name)(para_types) " 类成员函数指针: "return_type (class_name::*ptr_name)(para_types)" 类数据成员指针: "type class_name::* ptr_name"; C/C+ 阅读全文
posted @ 2017-07-29 15:32 FeckCode 阅读(673) 评论(0) 推荐(1) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 12 13 int main() 14 { 15 std::vector vec{1, 2... 阅读全文
posted @ 2017-07-29 14:51 FeckCode 阅读(648) 评论(0) 推荐(0) 编辑