C++学习笔记
NerverGiveUp1988
软件工程师,目前在电信行业工作
展开
-
C++基础知识回顾
以下是c++的基础知识,也是很容易被我们忽略的一些基础,因此记录下来1.转义符:换行符:\n水平制表符:\t垂直制表符:\v回车键:\r进纸键:\f响铃符:\a反斜杠:\\问号: \?单引号:\'双引号:\" 2.变量每一个变量都有两个值与其相关联:(1)、它的数据值,存储在某个内存地址中。有时候这个值也被称为对象的右值(2原创 2013-11-29 21:31:54 · 667 阅读 · 0 评论 -
重载、覆盖和隐藏
重载:在同一范围内(同一各类内),函数名相同,参数不同,基类函数必须要有Virtual关键字覆盖:指派生类函数覆盖基类函数,不同的函数(分别位于基类和派生类中),函数名字相同,参数相同,基类函数必须要有vortual关键字隐藏:不同范围若派生类函数与基类同名,但参数不同,不论有无virtual关键字,基类函数被隐藏若派生类与基类函数同名,且参数相同,若无virtual关键字原创 2013-11-30 09:06:55 · 569 阅读 · 0 评论 -
引用和指针
指针与引用的区别:1.指针可以为空,但是引用不能为空2.指针可以被赋值,但是引用只可以被初始化如果一个变量记录不同对象的地址,那么就必须使用指针3.指针可以指向堆中空间,引用不可以指向堆中空间例如:int *p = new int;正确 int &p = new int;错误地址传递可以修改原始变量的值值传递传递的是原始变量的副本因此它不会修改原始变量原创 2013-11-30 09:05:43 · 472 阅读 · 0 评论 -
虚函数与抽象类
抽象类不是实际存在的类,所以你不能定义一个抽象类的对象,但是却可以定义一个指向抽象类的指针。抽象类仅仅起到了为派生类提供一个接口的作用,这个接口类的纯虚函数可以没有任何作用,派生类将这些纯虚函数继承过来,然后给予不同的功能,而多态性又保证了用户在输入不同的数字时调用不同的虚函数。一个虚函数通过初始化为0就变成了纯虚函数一个类可以有多个纯虚函数,包含有纯虚函数的类叫做抽象类原创 2013-11-29 22:37:19 · 774 阅读 · 0 评论 -
内联函数
内联函数声明和使用声明时使用关键字inline。编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开支。注意:-内联函数体内不能有循环语句和switch语句-内联函数的声明必须出现在内联函数第一次被调用之前-对内联函数不能进行异常接口声明原创 2013-11-29 22:36:28 · 658 阅读 · 0 评论 -
类模板
类模板 QueueItem 的声明: template class QueueItem;一个类模板可以有多个类型参数template class QueueItem;模板参数名不能被用作在类模板定义中声明的类成员的名字:template class QueueItem {public:// ...private:// 错误: 成员名原创 2013-11-29 22:35:40 · 625 阅读 · 0 评论 -
静态成员函数
静态成员函数与静态成员变量是一样的,他们不但属于一个对象,而是属于整个类。注意:静态成员函数由于是属于整个类的,所以它不能访问某个对象的成员变量,因为它没有指向该对象的this指针。不过它可以访问该类的静态成员变量。可以通过对象来访问静态成员函数,但是要尽量使用类成员名限定来访问静态成员静态成员可以被继承,基类和派生类可以共享静态成员(包括静态成员变量和静态成员函数)原创 2013-11-29 22:34:55 · 534 阅读 · 0 评论 -
静态成员变量
第一:静态成员变量是属于整个类的全局变量,它不但属于某个对象,普通成员变量是属于类中对象的变量,它不能被所有对象共享。第二:静态成员变量必须在全局进行定义,而成员变量由于是属于该类某个对象的,而不是属于整个类的,因此不用在全局进行定义。第三:在使用静态成员变量时,可以不限定为某个具体的对象,只与类名连用即可。如:A::total。而不用A a;a.total;第四:静态原创 2013-11-29 22:33:48 · 651 阅读 · 0 评论 -
继承和派生
公有派生,私有派生有什么特点和区别无论采取何种派生方式,基类中的私有成员只能被基类的成员函数访问,不能被类外部的函数或其他类的成员函数访问,也不能被其派生类访问。基类的私有成员只能通过基类所提供的公有的接口函数来访问。公有派生时,基类中的公有成员在派生类中仍然是公有的,其他类的成员函数或类外的函数可以通过对象名直接访问这些从基类中继承来的成员;私有派生时,基类中的公共成员成为派生类中的私有成员原创 2013-11-29 22:32:28 · 659 阅读 · 0 评论 -
函数模板
函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计。声明方法:template例如一个求绝对值的模板:#includeusing namespace std;template //声明一个模板T abs(T x){return x}void main(){int n=-5;doubl原创 2013-11-29 22:31:27 · 537 阅读 · 0 评论 -
构造函数和析构函数
构造子类的对象时先调用基类的构造函数,在调用子类的构造函数,当释放该对象的时候,析构函数执行的顺序与构造函数的顺序恰恰相反多重继承的构造顺序:class a{};class b{};class c{};class d{};class e:public d,public c,public b,public a{};继承时的构原创 2013-11-29 22:30:17 · 514 阅读 · 0 评论 -
访问限定符
公有成员public : 在程序的任何地方都可以被访问私有成员private: 只能被成员函数和类的友元访问实行信息隐藏的类把其数据成员声明为private保护成员protected: 对派生类derived class 就像public 成员一样对其他程序则表现得像private友元声明以关键字friend 开头它只能出现在类的声明中由于友元不是授权友谊的类的成员.所以它原创 2013-11-29 22:29:14 · 1478 阅读 · 0 评论 -
C++中的多态性
C++语言以下列几种方式支持多态性:1 通过一个隐式转换从派生类指针或引用转换到其公有基类类型的指针或引用Query *pquery = new NameQuery( "Glass" );2 通过虚拟函数机制pquery->eval();3 通过dynamic_cast 和typeid if ( NameQuery *pnq =dynamic_cast( pquery原创 2013-11-29 22:28:22 · 593 阅读 · 0 评论 -
c++写的一个简单的管理系统
以下代码是我学习完c++基础知识之后为了练习一下,将所学的内容能够统一的串一遍,特别是练习一下指针的用法所编写的程序,并且有文件操作,现在分享一下,希望对初学者能够有所帮助。#include #include #include #include #define LEN sizeof(linklist)typedef struct consumer{cha原创 2013-12-02 21:54:11 · 2180 阅读 · 0 评论