![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习之旅
文章平均质量分 50
iteye_160
这个作者很懒,什么都没留下…
展开
-
变量的初始化、定义和声明
1.C++支持两种初始化变量的形式:复制初始化和直接初始化。复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中:int iVal(1024); //直接初始化int iVall = 1024; //复制初始化 在C++中“初始化不是赋值”,初始化指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值代替。 2.变量的初始化规则(1).内置类型变量的初...原创 2014-09-25 11:01:04 · 655 阅读 · 0 评论 -
标准IO库
IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于读写存储在内存中的string对象。在fstream和sstream里定义的每种类型都是从iostream头文件中定义的相关类型派生而来。 1.IO对象不可复制和赋值ofstream out1,out2;out1 = out2;//错...原创 2014-09-29 10:59:34 · 78 阅读 · 0 评论 -
C++函数
1.函数的传递形参的初始化与变量的初始化一样,如果形参是非引用类型,则复制实参的值;如果形参为引用类型,则它只是实参的别名。(1)非引用形参普通的非引用类型的参数通过复制对应的实参实现初始化,当用实参副本初始化形参时,函数并没有访问调用所传递的实参本身,因此不会修改实参的值。 注意:非引用形参表示对应实参的局部副本。对这类形参的修改仅仅改变了局部副本的值。一旦函数执行结束,这些...原创 2014-09-28 17:18:14 · 93 阅读 · 0 评论 -
C++表达式
1.箭头操作符如果p是一个指向对象的指针,(*p).foo;等价于p->foo; 2.条件运算符cond?expr1:expr2;(1)避免使用条件运算符的深度嵌套(2)在输出表达式中使用条件操作符 3.sizeof操作符sizeof操作符的作用是返回一个对象或类名的长度,返回值类型为size_t。对数组做sizeof操作符等效于将对其元素类型做si...原创 2014-09-28 15:42:48 · 154 阅读 · 0 评论 -
动态创建数组
数组类型的变量有三个重要的限制:数组长度不变,在编译时必须知道其长度,数组只在定义它的语句块内存在。实际的程序往往需要动态的分配数组。虽然数组长度是固定的,但动态分配的数组不必在编译时知道其长度,可以(通常是)在运行时才确定数组长度,与数组变量不同,动态分配的数组将一直在,知道程序显式释放它为止。C语言使用一对标准的函数malloc和free在自由存储区中分配存储空间,而C++语言则使用ne...原创 2014-09-26 16:31:02 · 196 阅读 · 0 评论 -
C风格字符串
尽管C++支持C风格字符串,但是不应该在C++源程序中使用这个类型。C风格字符串常常带来许多错误,是导致大量安全问题的根源。 C风格字符串的使用char ca1[] = {'c','+','+'};//不是C风格字符串char ca2[] = {'c','+','+','\0'};//C风格字符串char ca3[] = "c++";//C风格字符串const char ...原创 2014-09-26 16:09:33 · 71 阅读 · 0 评论 -
C++指针
指针的概念:指针用于指向对象。与迭代器一样,指针提供对其所指对象的间接访问,只是指针结构更通用一些。与迭代器不同的是,指针用于指向单个对象,而迭代器只能用于访问容器内的元素。string s("hello");string *sp = &s; 建议:尽量避免使用指针和数组指针和数组容易产生不可预料的错误。指针用于低级操作,容易产生与繁琐细节相关的错误,现在C++程序采用...原创 2014-09-26 14:19:57 · 64 阅读 · 0 评论 -
C++数组
低级符合类型:数组、指针数组的长度是固定的。数据一经创建,就不允许添加新的元素。指针可以向迭代器一样便利和检查数组中的元素。现在C++程序应尽量使用vector和迭代器类型,而避免使用低级的数组和指针。与使用标准的vector类型的程序相比,依赖于内置数组的程序更容易出错而且难于调试。 注意:数组定义中的类型名可以是内置数据类型或类类型;除引用之外,数组元素的类型还可以是任意的符合...原创 2014-09-26 14:09:24 · 70 阅读 · 0 评论 -
标准库vector模板
vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。vector成为容器,因为它能包含其他对象,所有对象必须是同一种类型。#include<vector>using std::vector; 注意:vector是一种类模板,不是一种数据类型,它可以来定义任意多种数据类型。如vector<int>和vector<string>...原创 2014-09-26 10:58:07 · 75 阅读 · 0 评论 -
标准库string类型
string类型支持长度可变的字符串。#include <string>using std::string; 1.string对象的定义和初始化(1)string s1; 默认构造函数,s1为空串(2)string s2(s1); 将s2初始化为s1的一个副本(3...原创 2014-09-25 15:57:39 · 70 阅读 · 0 评论 -
头文件、预处理器、命名空间
1.头文件用于声明而不是用于定义extern int ival = 10; //初始化了,为定义,不适合放在头文件中double dval; //没有extern,是定义,不适合放在头文件中 注意:避免防止多重定义链接错误。因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。关于头文件不应该含有定义这一规则,有三个例外:头文件可以定义类、值在...原创 2014-09-25 14:13:44 · 110 阅读 · 0 评论 -
枚举和类类型
1.定义和初始化枚举关键字enumenum a{input,output,append};默认地,第一个枚举成员赋值为0,后面的每个枚举成员赋的值比前面的大1。 2.枚举成员是常量可以为一个或多个枚举成员提供初始值,用来初始化枚举成员的值必须是一个常量表达式。enum Forms{shape=1,sphere,cylinder,polygon};在枚举类型For...原创 2014-09-25 13:54:17 · 163 阅读 · 0 评论 -
const限定符和引用和typedef
1.定义const对象 const int i=10; 变量i仍然是一个左值,但是现在这个左值是不可修改的,任何修改i的尝试都会导致编译出错。2.const对象默认为文件的局部变量非const变量默认为extern。要使const变量能够在其他的文件中访问,必须显示的指定它为extern。 3.引用引用就是对象的另一个名字。在实际程序中,引用主要用作函数的形式参...原创 2014-09-25 12:13:48 · 51 阅读 · 0 评论 -
顺序容器
顺序容器内的元素按其位置存储和访问。标准库定义了三种顺序容器类型:vector、list和deque(双端队列,读“deck”)。标准库还提供了三种容器适配器(adaptor)。包括stack、queue和priority_queue类型。顺序容器vector 支持快速随机访问list 支持...原创 2014-09-29 11:53:09 · 86 阅读 · 0 评论