![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++学习
学习《c++ primer plus》笔记
美女大神的日子
这个作者很懒,什么都没留下…
展开
-
const与引用的关系
1.使用int i = 6;const int &a = i;i = 9;在此时,a与i是同一个变量,名称不同改变i的值,而不是用a改变输出:a=9,i=9如果使用a改变值则编译错误2.当引用对象类型不同时double i = 6.79;const int &a = i;i = 9.67;输出:a=6,i=9.67这种技术原理...原创 2019-08-18 23:47:26 · 174 阅读 · 0 评论 -
变量储存持续性、作用域和链接性
静态持续变量 静态持续变量3种链接性:外部链接性(可在其他文件中访问)、内部链接性(只能在当前文件中访问)、无链接性(只能在当前函数或代码中访问)。 要想创建链接性为外部或内部的静态持续变量,必须在代码块外面声明它,要创建没有链接性的静态持续变量,必须在代码块内声明它。外部链接性1.单定义规则 变量只能有一次定义,c++提供了两种变量声明,一种是定义声明(defining decl...原创 2019-09-14 21:57:50 · 132 阅读 · 0 评论 -
(未完成)名称空间
未完成,待续原创 2019-09-15 09:18:40 · 118 阅读 · 0 评论 -
OOP(面向对象编程)的特点
抽象封装和数据隐藏多态继承代码的可重用性原创 2019-09-15 09:20:08 · 147 阅读 · 0 评论 -
封装,类设计,共有接口
类设计尽可能将公有接口与实现细节分开。共有接口表示设计的抽象组件。将实现细节放在一起并将它们与抽象分开就称为封装。数据隐藏(将数据放在类的私有部分中)是一种封装,将实现的细节隐藏在私有部分中。封装的另一个例子是,将类函数定义和类声明放在不同的文件中。...原创 2019-09-15 09:21:36 · 180 阅读 · 0 评论 -
类定义,声明,使用
定义类,类规范一般来说由两个部分组成:类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述共有接口。类方法定义: 描述如何实现类成员函数。类声明提供了类的蓝图,而方法提供了细节在库文件中定义类://ss.h#ifndef STOCK_H_#define STOCK_H_#include<string>class Stock{private:...原创 2019-09-15 09:25:13 · 328 阅读 · 0 评论 -
类的构造函数与析构函数,const 成员函数(超详细)
构造函数库文件://ss.h#ifndef STOCK_H_#define STOCK_H_#include<string>class Stock{private: std::string company; long shares; double share_val; double total_val; ...原创 2019-09-15 09:36:37 · 703 阅读 · 0 评论 -
this指针(超详细)
this指针指向用来调用成员函数的对象原创 2019-09-15 15:14:49 · 3255 阅读 · 3 评论 -
运算符重载(超详细)
运算符重载operatop( argument-list)例如,operator+() 重载+运算符原创 2019-09-17 14:01:55 · 33318 阅读 · 0 评论 -
友元(友元函数)
文章目录产生的原因创建友元关于友元是否有悖于OOP 产生的原因c++控制类对象私有部分的访问。通常,共有类方法提供唯一的途径,但是c++提供了另外一种形式的访问权限:友元。友元有3种:友元函数友元类友元成员函数在这样一个类声明中://ss.h#ifndef MYTIME_H_#define MYTIME_H_class Time...原创 2019-09-18 16:58:26 · 344 阅读 · 0 评论 -
(未完成)类的自动转换和强制类型转换
未完成,待续原创 2019-09-19 16:49:58 · 96 阅读 · 0 评论 -
类的继承和派生类与基类之间的关系
类继承创造并简单的使用一个派生类派生类与基类之间的特殊关系原创 2019-09-23 15:48:42 · 720 阅读 · 0 评论 -
(未完成)函数模板,模板重载,显示具体化
函数模板是通用的函数描述,也就是说,它们使用泛型来定义函数,其中的泛型可用具体的类型(如 int 或 double )替换。比如建立一个交换模板template void Swap(AnyType &a, AnyType &b){AnyType temp;temp = a;a = b;b = temp;}第一行:指出要建立一个模板,并将类型命名为AnyType。...原创 2019-09-14 21:50:45 · 90 阅读 · 0 评论 -
函数重载(函数多态)
相同的函数名,不同的参数列表。void print (double d, int width);double print (int i, const char* str);建议不要滥用,当使用不同类型的参数,则默认参数不管用了,在这种情况下,应该使用函数重载。...原创 2019-09-14 21:43:43 · 1043 阅读 · 0 评论 -
函数的默认参数
在函数原型处声明默认参数char* left (const char* str, int n = 1);在调用时即使使用left(“love”)也可以注意:int harpo(int a, int b, int c)当函数有多个函数列表的时候,设置默认值要从右到左设置int harpo (int a, int b, int c = 1)//有效int harpo (int a, i...原创 2019-09-14 21:43:07 · 80 阅读 · 0 评论 -
const与指针的关系
1.const在指针名之前结论:const在指针名之前,指针所指的地址不能改变改变指针指向对象的值:int i = 90;int* const p1 = &i;//p1 is a const object*p1 = 60;此时输出结果为:i=60*p1=60另一种情况,改变指针所指的地址:int i = 90;int y = 10;int* c...原创 2019-08-18 23:11:16 · 228 阅读 · 0 评论 -
外部变量
使用外部变量加externWhen we define a const with the same name in multiple files, it is as if we had written definitions for separate variables in each file. Sometimes we have a const variable that we...原创 2019-08-17 19:57:36 · 118 阅读 · 0 评论 -
一个字等于多少个字节
1字节(byte) = 8位(bit)在16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit)在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit)在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)...原创 2019-09-14 17:19:00 · 10162 阅读 · 0 评论 -
c++中不指定函数参数列表时的原型
函数原型为:void say_bye(…);原创 2019-09-14 17:20:18 · 379 阅读 · 0 评论 -
指针和二维数组的关系
int data[3][4] = {{1,2,3,4}, {9,8,7,6},{2,4,6,8}};int total = sum(data,3);Data 是一个数组名,该数组有3个元素。第一个元素本身是一个数组,有4个int值组成。因此data的类型是指向4个int组成的数组的指针,函数原型int sum(int (*ar2)[4], int size);可以把它当作int su...原创 2019-09-14 17:25:24 · 179 阅读 · 0 评论 -
共同体(union)
共同体是一种数据格式,它能储存不同的数据类型,但只能同时储存其中的一种类型。也就是说每次只能储存一个值,也就意味着它必须有足够的空间来储存最大的成员,共同体的长度是最大成员的长度。 共用体的用途之一是,当数据项使用两种或更多种格式,且不会同时使用时,可节省空间。最大的作用就是可以节省空间,在记录一些商品ID的时候,有的是整数,有的是字符串,这样可以节省空间。union one4all...原创 2019-09-14 17:34:43 · 1150 阅读 · 0 评论 -
string类的使用
#include…//声明变量std::string lie = "sdfjknkdgn";std::string list[5] = {"dfj","dsabdk","sfkjc","sfcbk","asbjk"};//使用,打印std::cout << lie << '\n';for (int i = 0; i < 5; i++) std:...原创 2019-09-14 17:40:42 · 106 阅读 · 0 评论 -
递归
通用方法void recurs(argumentlist){ statments1 if (text) recurs(argumemts) statments2}示例一:#include<iostream>void countdown(int n);int main(){ countdown(5); ...原创 2019-09-14 17:42:20 · 85 阅读 · 0 评论 -
函数指针
1.获取函数的地址假设 think() 是一个函数,那么think就是这个函数的地址,think()是这个函数的返回值process(think)//使用的是这个函数的地址throught(think())//使用的是个函数的返回值2.声明一个函数指针声明正确的函数指针:double (*pf )(int);//double *pf(int);指的是返回一个double类型的指...原创 2019-09-14 17:54:38 · 111 阅读 · 0 评论 -
内联函数
1.作用 编译器将使用相应的函数代码代替函数调用。对于内联代码,程序无需跳到另一个位置处执行代码,再跳回来,运行速度略微快一些。2.使用#include<iostream>inline double square(double x) { return x* x; }int main(){ using namespace std; dou...原创 2019-09-14 17:56:50 · 134 阅读 · 0 评论 -
将引用用于类对象--可能出现的问题
#include<iostream>#include<string>using namespace std;string version1(const string& s1, const string& s2){ string temp; temp = s2 + s1 + s2; return temp...原创 2019-09-14 21:35:35 · 139 阅读 · 0 评论 -
何时使用引用参数
引用参数的主要原因有两个:程序员能够修改调用函数中的数据对象。通过传递引用而不是整个数据对象,可以提高程序的运行速度。对于使用传递的值而不作修改的函数数据对象小,按值传递数据对象是数组,使用指针(唯一的选择)数据对象是比较大的结构,使用const引用或者const指针数据对象是类对象,则使用const引用。对于修改调用函数中数据的函数如果数据对象是内置数据类...原创 2019-09-14 21:42:08 · 317 阅读 · 0 评论 -
多态共有继承
在派生类中重新定义基类的方法使用虚方法原创 2019-09-23 15:50:58 · 133 阅读 · 0 评论