代码改变世界

随笔分类 -  C++

C++学习笔记(十七):RTTI

2014-10-18 14:38 by 阿诚de窝, 314 阅读, 收藏, 编辑
摘要: 这个知识点被遗漏了,可以结合之前的这篇文章看类型转换这个知识点。RTTI(Run-Time Type Information,运行时类型信息)即程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。C++中有两个操作符提供RTTItypeid:返回指针或引用所指对象的实际类型。d... 阅读全文

C++学习笔记(十六):友元

2014-10-18 11:48 by 阿诚de窝, 246 阅读, 收藏, 编辑
摘要: 问题的提出:我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型... 阅读全文

C++学习笔记(十五):异常

2014-10-17 14:28 by 阿诚de窝, 397 阅读, 收藏, 编辑
摘要: C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错误,但却无法检查它们何时发生(如果能检测,就可以再用户... 阅读全文

C++学习笔记(十四):模板

2014-10-17 11:25 by 阿诚de窝, 272 阅读, 收藏, 编辑
摘要: 模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。Java中对应的技术称为泛型。函数模板:格式:1 template 2 返回类型 函数名(参数列表)3 {4 函数体5 }其中tem... 阅读全文

C++学习笔记(十三):类、包和接口

2014-10-17 09:45 by 阿诚de窝, 505 阅读, 收藏, 编辑
摘要: 看标题感觉这些术语和C++没有什么关系啊,包和接口是Java等语言加入的概念。这篇文章是基于Java等语言的新概念(相对于C++来说的新概念)来看C++的设计思路。类:C++中,一个文件可以包含多个类,且文件名可以任意取。而Java中一个文件仅包含一个对外可见的类,并且文件名必须和类名一致。这样的好... 阅读全文

C++学习笔记(十二):类继承、虚函数、纯虚函数、抽象类和嵌套类

2014-10-16 19:52 by 阿诚de窝, 1386 阅读, 收藏, 编辑
摘要: 类继承在C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生。 从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。 1 //单继承的定义 2 class B:public A 3 { 4 5 }; 6 //多继承的定义 7 class C:public ... 阅读全文

C++学习笔记(十一):void*指针、类型转换和动态内存分配

2014-10-16 12:44 by 阿诚de窝, 12063 阅读, 收藏, 编辑
摘要: void*指针void关键字表示“空类型”的概念。但是,这里的“空类型”不表示“任意类型”,而是表示不存在的意思,也就是说C/C++不允许你写语句void a,不存在类型为void的东西.void*表示“空类型指针”,与void不同,void*表示“任意类型的指针”或表示“该指针与一地址值相关,但是... 阅读全文

C++学习笔记(十):类

2014-10-15 14:13 by 阿诚de窝, 307 阅读, 收藏, 编辑
摘要: 类的定义:C++中使用关键字 class 来定义类, 其基本形式如下: 1 class 类名 2 { 3 public: 4 //公共的行为或属性 5 6 protected: 7 //受保护的行为或属性 8 9 private:10 ... 阅读全文

C++学习笔记(九):作用域和命名空间

2014-10-14 19:26 by 阿诚de窝, 2301 阅读, 收藏, 编辑
摘要: 作用域作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域)。变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号。也就是说,作用域由变量所在的最近一对括号确定。(1) 全局变量:全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其... 阅读全文

C++学习笔记(八):函数重载、函数指针和函数对象

2014-10-14 16:33 by 阿诚de窝, 2187 阅读, 收藏, 编辑
摘要: 函数重载函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。试想如果没有函数重载机制,如在C中,你必须要这样去做:为这个print函数取... 阅读全文

C++学习笔记(七):函数

2014-10-14 11:11 by 阿诚de窝, 317 阅读, 收藏, 编辑
摘要: 函数通用格式:1 typeName functionName(parameterList)2 {3 //statements4 return value;//value is type cast to type typeName5 }函数原型:C++的函数必须提供一个函数原型;1 i... 阅读全文

C++学习笔记(六):复杂数据类型(string、容器和STL)

2014-10-10 13:54 by 阿诚de窝, 934 阅读, 收藏, 编辑
摘要: STL即Standard Template Library(标准模板库),由于C++自带的数据类型过于简单,并不能满足我们的使用需要,而STL作为C++标准的内置库为我们编写好了多种高效的数据结构和算法,引入这些库后直 接使用即可。容器简介:标准STL序列容器:vector、string、deque... 阅读全文

C++学习笔记(五):指针和引用

2014-09-11 17:08 by 阿诚de窝, 309 阅读, 收藏, 编辑
摘要: 声明指针:1 //指针声明 * 号左右的空格是可选的,下面的定义都是正确的2 int *pointer1;3 int* pointer2;4 int*pointer3;5 int * pointer4;6 //注意: pointer5 是指针而 pointer6 不是7 int *pointer5,... 阅读全文

C++学习笔记(四):枚举

2014-09-10 19:41 by 阿诚de窝, 302 阅读, 收藏, 编辑
摘要: 枚举用来代替静态常量,优点就是可以确定值的范围,而常量则无法确定范围;常量表示法: 1 const int TYPE_1 = 0; 2 const int TYPE_2 = 1; 3 const int TYPE_3 = 2; 4 5 const int ONE = 0; 6 const int ... 阅读全文

C++学习笔记(三):数组

2014-08-26 15:20 by 阿诚de窝, 237 阅读, 收藏, 编辑
摘要: 数组声明时必须指定该数组的长度:1 int a[20];这个时候已经分配了内存,但没有初始化,所以具体的值是不确定的;初始化:1 int a[3] = {1, 2, 3};2 int a[3] = {1};//指定第一个数字为1,后面的使用0填充;3 int a[100] = {0};//指定所有的... 阅读全文

C++学习笔记(二):基本数据类型

2014-08-19 15:56 by 阿诚de窝, 333 阅读, 收藏, 编辑
摘要: 带符号整数:short至少16位;int至少与short—样长;long至少32位,且至少与int—样长;long long至少64位,且至少与long—样长;无符号整数:unsigned shortunsigned intunsigned(等于unsigned int)unsigned longu... 阅读全文

C++学习笔记(一):头文件和源文件

2014-08-19 14:59 by 阿诚de窝, 487 阅读, 收藏, 编辑
摘要: 说明:当一个源文件(a.cpp)要调用另一个源文件(b.cpp)定义的方法时,需要在a.cpp中写上这个方法的声明(只需要该方法的名称、返回值和参数,类似Java的接口);如果每次调用其他文件的方法时都写上相同的声明就会很麻烦,而且当b.cpp的定义修改时所有调用到该文件的声明都要修改,这样工作量太... 阅读全文
点击右上角即可分享
微信分享提示