随笔分类 -  c++

摘要:逐位复制(bitwise copy):编译器将生成必要的代码把“源”对象各属性的值分别赋值给“目标”对象的对应成员的行为。对对象的地址赋值操作,于是乎,当删除一个对象时,它包含的指针也将被删除,但万一此时另一个副本(对象)还在引用这个指针,就会出问题!要是程序员在当初进行对象“复制”时能够精确地表明... 阅读全文
posted @ 2014-07-18 14:24 forrHuen 阅读(570) 评论(0) 推荐(0)
摘要:容器和算法容器:容器的概念:能容纳两个或更多个值的数据结构,通常我们称为容器(container)。这么说,数组是唯一直接支持的容器,但数组并不适合用来解决所有的问题。上一节利用模板就实现了一种新的容器(栈Stack)。老一辈程序员为我们提供了一种容器库,Standard Template Libr... 阅读全文
posted @ 2014-07-18 08:28 forrHuen 阅读(288) 评论(0) 推荐(0)
摘要:1.内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但能否形成内联函数,需要看编译器对该函数定义的具体处理。such as:inline int add(int a,int b,int c){ r... 阅读全文
posted @ 2014-07-18 08:27 forrHuen 阅读(319) 评论(0) 推荐(0)
摘要:函数模板的作用:解决需要重载多种不同类型参数的函数的问题,但又不想重载的时候。好处,泛型编程,解决了多处重载的问题。函数模板Demo://声明函数模板类型T,T代表泛型,类似于OC中的id。函数模板的声明要实现放在一齐,分开的话会报错。class换成typename也是同一个意思。template ... 阅读全文
posted @ 2014-07-16 17:25 forrHuen 阅读(220) 评论(0) 推荐(0)
摘要:类型强转换有2种。class Company{public: Company(std::string theName,std::string theProduct); virtual void printInfo(); protected: std::string name;... 阅读全文
posted @ 2014-07-11 13:53 forrHuen 阅读(190) 评论(0) 推荐(0)
摘要:1.静态内存,编译时申请,存储在栈,如基本数据类型。2.动态内存由一些没有名字,只有地址的内存块构成。那些内存块是在程序运行期间动态分配的。它们来自一个标准c++库替你管理的“大池子”(内存池),从内存池申请一些内存需要用new语句,他将根据你提供的数据类型分配一块大小适当的内存。你不必担心内存块的... 阅读全文
posted @ 2014-07-11 09:53 forrHuen 阅读(900) 评论(0) 推荐(0)
摘要:多继承class Person{public: Person(std::string theName); void introduce(); protected: std::string name;};class Teacher : public Person{pub... 阅读全文
posted @ 2014-07-10 20:50 forrHuen 阅读(319) 评论(0) 推荐(0)
摘要:1.静态属性和静态方法静态方法的调用,ClassName::mothodName();class Pet{public: Pet(std::string theName); ~Pet(); static int getCount();//公开的静态方法protected: ... 阅读全文
posted @ 2014-07-08 21:49 forrHuen 阅读(499) 评论(0) 推荐(0)
摘要:一些规则1.c++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重载。2.除了五个运算符不允许重载外,其他运算符允许重载:.成员访问运算符*成员指针访问运算符::与运算符sizeof尺寸运算符?:条件运算符3.重载运算符必须和用户定义的自定义类型的对象一起使用。(也就是说,参数不能全部都... 阅读全文
posted @ 2014-07-08 21:49 forrHuen 阅读(325) 评论(0) 推荐(0)
摘要:1.虚方法(Virsual Method)虚方法是继承的,一旦在基类里把某个方法声明为虚方法,在子类里就不可能再把它声明为一个非虚方法了。在基类里把所有的方法都声明为虚方法会让最终生成的可执行代码的速度变得稍微慢一些,但好处是可以一劳永逸地确保程序的行为符合你的预期。析构器都是虚方法!从编译的角度看... 阅读全文
posted @ 2014-07-08 21:49 forrHuen 阅读(1542) 评论(0) 推荐(1)
摘要:1.友元(激情四射的机油)友元关系:是不同类间的一种特殊关系,这种特殊关系允许友元类访问对方的protected和private方法和属性。class Lovers{public: Lovers(std::string theName); void kiss(Lovers *lover)... 阅读全文
posted @ 2014-07-08 21:48 forrHuen 阅读(227) 评论(0) 推荐(0)
摘要:1.构造器与结构体的区别:构造器多支持方法。其作用有申请内存,初始化变量。在c++中构造器没有返回值:语法Class Name();2.析构器的作用:释放内存。在c++中析构器没有返回值:语法~ClassName();class Animal{public: std::string mouth... 阅读全文
posted @ 2014-07-08 21:48 forrHuen 阅读(392) 评论(0) 推荐(0)