
笔记-C++学习
张勇1234
这个作者很懒,什么都没留下…
展开
-
1、开始学习C++
1、大多数系统中main函数被用来指示状态。返回0表示成功,非0的含义由系统定义,通常是错误类型。2、编译生成的可执行文件,通常Windows是xx.exe,UNIX是xx.out。3、术语“流”表达随时间的推移,字符是顺序生成或消耗的。iostream库包含输入流和输出流,一个流就是一个字符序列,是从IO设备读出或写入IO设备。cin:标准输入;cout:标准输出;cerr:标准输出(通常用其输出原创 2017-09-04 15:28:21 · 172 阅读 · 0 评论 -
6、类
1、类的基本思想:数据抽象、封装。数据抽象:分离接口(定义和声明用户能执行的操作)和实现(数据成员、接口函数体的实现)。2、编译器先编译成员的声明,后编译成员函数体,无论这些成员出现的顺序。3、this是指向类的指针,*this即类。4、const//这里的const把this转换为常量指针,因为没有修改类的成员string isbn() const {return bookNo;}5、类的成员函原创 2017-09-08 17:13:00 · 339 阅读 · 0 评论 -
5、函数
1、局部静态变量,只初始化一次,程序终止才销毁static int a = 1;2、如果形参是引用类型,它将绑定到对应的实参上;否则,将实参的值拷贝给形参。C++建议使用引用类型的形参代替指针。如果函数无需改变引用形参的值,最好将其声明为常量引用。//即int &i = 实参,使实参=0void reset(int &i){ i = 0;}int j;reset原创 2017-09-07 11:07:03 · 232 阅读 · 0 评论 -
模板和异常
函数模板//函数模板 template <class T>T mymax(T a, T b){ T m; m = a>b?a:b; cout<<"max is :"<<m<<endl;}int main(){ int x=1, y=2; double a=1.1, b=2.2; mymax(x,y); mymax(a,b);原创 2017-12-04 11:36:12 · 333 阅读 · 0 评论 -
C++类的继承
继承方式/*默认继承方式为private (1)public继承时 - 父类的public成员,变为子类的public成员 - 父类的protected成员,变为子类的protected成员 - 父类的private成员,变为子类不可直接使用的成员(2)private继承时 - 父类的public成员,变为子类的private成员 - 父类的protected成员,变为子类的原创 2017-12-04 10:27:41 · 244 阅读 · 2 评论 -
C++ String使用简要整理
声明和初始化string s; //声明一个string 对象string ss[10]; //声明一个string对象的数组string s1("ssss");string s2(s1);string s3s3 = s2; // 支持直接赋值操作s3 = "1234"string s4(10,'c'); //s4 = "cccccc原创 2017-11-30 16:14:31 · 330 阅读 · 0 评论 -
C++泛型算法简要整理
1、vector ivec; //返回value出现的次数 count(ivec.begin(),ivec.end(),value);2、以初值initvalue进行累加 accumulate(ivec.begin(),ivec.end(),initvalue);3、范围赋值 fill(ivec.begin(),ivec.end,value); ivec.begin()开始的n个元素赋值原创 2017-11-29 11:06:23 · 274 阅读 · 0 评论 -
8、顺序容器
1、顺序容器有vector(可变大小数组);deque(双端队列);list(双向链表);forward_list(单向链表);array(固定大小数组);string字符容器2、通常vector是最好的选择,vector是模板而非类型;每个容器都包含一个头文件,文件名和类型名相同。3、迭代器类似于指针//定义迭代器类型iter,类型为list<string>中的iteratorlist<stri原创 2017-09-12 09:50:12 · 532 阅读 · 0 评论 -
7、IO库
1、IO类:iostream读写流;fstream读写命名文件;sstream读写内存string对象。 C++定义的宽字符类型和函数的名字以w开始。(1)不能拷贝IO对象,因此不能将形参或返回类型设置为流类型,进行IO操作的函数通常以引用方式传递和返回流。(2)流可能处于错误状态,因此代码通常应该在使用一个流之前检测它是否处于良好状态。(3)缓冲机制,操作系统将程序的多个输出操作组合成单一的系统原创 2017-09-10 22:37:42 · 272 阅读 · 0 评论 -
4、表达式
1、手动明确调用顺序防止出错int i = f() * g();//f()和g()调用顺序不确定int a, b;a = f();b = g();i = a + b;2、赋值运算符返回的是左侧运算对象,赋值运算还满足右结合律。赋值运算符优先级较低,低于关系运算符。int a, b;a = b = 0;//即a = (b = 0);b = 0;a = b;3、++i先加后用,如果不需要保留原创 2017-09-06 10:20:19 · 247 阅读 · 0 评论 -
3、字符串、向量、数组
1、使用using声明就无需专门的前缀(如std::)。头文件不应包含using声明#include <iostream>using std::cin;using std::cout;using std::endl;int main(){ cout << "Enter two numbers:" << endl; int v1 = 0, v2 = 0; cin >>原创 2017-09-05 12:13:42 · 217 阅读 · 0 评论 -
2、C++基本数据类型
1、C++规定int>=short; long>=int; long long >=long。float:4字节,7位有效位;double: 8字节,16位有效位。2、char 表示 signed char 还是 unsigned char 由具体编译器决定。所以在算术表达式中尽量不要使用char。执行浮点运算选用double,因为double和float计算代价差不多,在一些机器中doubl原创 2017-09-04 23:07:11 · 279 阅读 · 0 评论 -
C++类虚函数内存分布
转自:http://www.cnblogs.com/jerry19880126/p/3616999.html下面可以定义一个类,像下面这样: 1 class Base2 {3 int a;4 int b;5 public:6 void CommonFunction();7 };然后编译一下,可以看到输出框里面有这样的排布:这里不想...转载 2018-07-30 17:30:26 · 190 阅读 · 0 评论