随笔分类 -  我的复习笔记C++

摘要:1:多态是如何实现绑定的?多态的绑定可以分为运行是多态和编译时多态●编译时的多态性编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。●运行时的多态性运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。2:析构函数是虚函数的优点是什么?这样做是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。当然,并不是要把所有类的析构函数都写成虚函数。因为当类里面有虚函数的时候, 阅读全文
posted @ 2012-04-18 13:27 foreverlearn 阅读(111) 评论(0) 推荐(0)
摘要:资料:http://www.cnblogs.com/BlueTzar/articles/1223313.html 阅读全文
posted @ 2012-04-18 12:58 foreverlearn 阅读(99) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/yuyijq/archive/2011/05/28/2060733.html1:引用计数引用计数(Reference Counting)引用计数,顾名思义,就是每个对象上有个计数器,当添加了一个对它的引用时它的计数器就会加1,当不再使用这个引用时它的计数器就会递减1。当计数器为0的时候则认为该对象是垃圾,可以被回收了,如果该对象被回收则该对象所引用的所有对象的计数器会跟着递减。这样有可能会有很多对象的引用都减为0。使用引用计数做垃圾收集的算法的一个优点是实现很简单,与其他垃圾收集算法相比还有个特点是它的垃圾收集过程不会造成程序暂停(这个后面会 阅读全文
posted @ 2012-04-13 13:48 foreverlearn 阅读(147) 评论(0) 推荐(0)
摘要:转自http://blog.csdn.net/livelylittlefish/article/details/2171521#静态绑定与动态绑定静态绑定:编译时绑定,通过对象调用动态绑定:运行时绑定,通过地址实现C++的多态性静态多态性:函数多态性——函数重载 模板多态性——C++模板(类模板、函数模板)动态多态性:虚函数(只有用地址才能实现动态多态性)只有采用“指针->函数()”或“引用变量.函数()”的方式调用C++类中的虚函数才会执行动态绑定。对于C++中的非虚函数,因为其不具备动态绑定的特征,所以不管采用什么样的方式调用,都不会执行动态绑定。 阅读全文
posted @ 2012-04-11 09:16 foreverlearn 阅读(160) 评论(0) 推荐(0)
摘要:一.概念性问答题第一题:线程的基本概念、线程的基本状态及状态之间的关系?进程概念 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。 在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。因此,实现并发功能的单位是线程。线.. 阅读全文
posted @ 2012-04-06 13:51 foreverlearn 阅读(224) 评论(0) 推荐(0)
摘要:vectorvector::erase函数iterator erase ( iterator position ); iterator erase ( iterator first, iterator last );Removes from the vector container either a single element (position) or a range of elements ([first,last)).Because vectors keep an array format, erasing on positions other than the vectorendal 阅读全文
posted @ 2012-03-27 14:47 foreverlearn 阅读(140) 评论(0) 推荐(0)
摘要:class String { public: String(const char *src = NULL);//构造函数 String(const String &other);//拷贝构造函数 ~String(void);//析构函数 String & operator =(const String &other);//赋值函数 void ShowString(); private: char *m_data; }; //String 的构造函数 String::S... 阅读全文
posted @ 2012-03-26 20:36 foreverlearn 阅读(212) 评论(0) 推荐(0)
摘要:判断x是否为2的若干次幂关键运算 i & (i - 1)i 和 i-1的二进制区别,i若为2的若干次幂,则i与i-1的区别为相反----------------10000000000000001000000000000000000000000000000001----------------20000000000000010000000000000000100000000000000001----------------40000000000000100000000000000001100000000000000001----------------800000000000010000 阅读全文
posted @ 2012-03-24 11:58 foreverlearn 阅读(640) 评论(0) 推荐(0)
摘要:转自:http://www.chinaunix.net/jh/23/25356.html题目:已知strcpy函数的原型是:char*strcpy(char*strDest,constchar*strSrc);1.不调用库函数,实现strcpy函数。2.解释为什么要返回char*。解说:1.strcpy的实现代码char * strcpy(char * strDest,const char * strSrc) { if ((strDest==NULL)||(strSrc==NULL)) //[1] throw "Invalid argument(... 阅读全文
posted @ 2012-03-20 09:45 foreverlearn 阅读(176) 评论(0) 推荐(0)
摘要:转自:http://www.ezloo.com/2008/10/stored_procedure.html存储过程(Stored Procedure)存储过程就是已经编译好的、优化过的放在数据库服务器中的一些SQL语句;可供应用程序直接调用。使用存储过程有以下几个优点:1、执行速度比普通的SQL语句快 再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。 由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。2、便于集中控制当企业规则变化时,只需要在数据库的服务器中修改相应的存储过程,而不需要逐个的在应用 阅读全文
posted @ 2012-03-19 09:39 foreverlearn 阅读(146) 评论(0) 推荐(0)
摘要:转自http://soft.yesky.com/lesson/110/2381610.shtml踏入C++中的雷区——C++内存管理详解2006-04-25 09:22作者:蒋涛出处:计算机教学网责任编辑:方舟 伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配... 阅读全文
posted @ 2012-03-16 10:54 foreverlearn 阅读(163) 评论(0) 推荐(0)
摘要:STL里的位标识类,<bitset>STL bitset是一个STL类,用于处理以位和位标志表示的信息,std::bitset不是STL容器类,因为它不能调整长度,也不具备容器的其他特征(见容器特征),如通过迭代器进行访问。这是一个实用类,针对处理长度在编译阶段已知的位序列进行了优化。示例:#include <iostream> #include <bitset> #include <string> int main() { bitset<8> eightBits; cout<<"The initial cont 阅读全文
posted @ 2012-03-10 13:41 foreverlearn 阅读(157) 评论(0) 推荐(0)
摘要:第三章 前言 讨论 class的大小问题#include"iostream" using namespace std; class X{}; class Y:public virtual X{}; class Z:public virtual X{}; class A:public Y,public Z{}; int main() { cout<<"X:"<<sizeof(X)<<endl; cout<<"Y:"<<sizeof(Y)<<endl; cout< 阅读全文
posted @ 2011-11-19 15:23 foreverlearn 阅读(163) 评论(0) 推荐(0)
摘要:c++模型笔记:第一章:关于对象1:c中数据和处理数据是分开声明的,c没有支持数据和函数之间的关联性,程序性的2:c++中 data members直接内含在每一个class object 之中,就像c struct一样,而member function 虽然在object 之中,但每一个non-inline member function只会诞生一个函数实体,拥有inline member function 则会在其每一个使用者(模块)身上产生一个函数实体,C++ 在布局和存取时间上的额外负担是由 virtual引起的,包括:1)vitrual function 机制,用以支持一个有效率的执 阅读全文
posted @ 2011-11-17 20:22 foreverlearn 阅读(206) 评论(0) 推荐(0)
摘要:1:调用基类方法#include<iostream> using namespace std; class Mammal { public: void Move() const {cout<<"move one step"<<endl;} void Move(int distance)//加cosnt和不加的区别 { cout<<"move"<<distance<<"step"<<endl; } protected: int itsAge; int i 阅读全文
posted @ 2011-11-12 20:30 foreverlearn 阅读(124) 评论(0) 推荐(0)