02 2023 档案
摘要:1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存四区意义
阅读全文
摘要:程序清单11.16 stonewt.h #pragma once //stone.h -- Stonewt类声明 #ifndef STONEWT_H_ #define STONEWT_H_ class Stonewt { private: enum {Lbs_per_stn = 14};//poun
阅读全文
摘要:Stock类非常具体。然而,程序员常常通过定义类表示更通用的概念。抽象数据类型以通用的方式描述数据类型,而没有引入语言或实现细节。例如,通过使用栈,可以以这样的方式存储数据,即总是从栈顶添加或删除数据。例如,C++程序使用栈来管理自动变量。当新的自动变量被生成后,它们被添加到栈顶;消亡时,从栈中删除
阅读全文
摘要:声明对象数组的的方法与声明标准类型数组相同: Stock mystuff[4]; 当程序创建未被显式初始化的类对象时,总是调用默认构造函数。上述声明要求,这个类要么没有显式地定义任何构造函数(在这种情况下,将使用不执行任何操作的隐式默认构造函数),要么定义了一个显式默认构造函数(就像这个例子一样)。
阅读全文
摘要:1.什么是函数模版 函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板 2.怎么编写函数模版 //T代表泛型的数据类型,不是只能写T, template<class T>//让编译器看到这句话后面紧跟着的函数里有T不要报错 void
阅读全文
摘要:C++提供了函数模板(function template)。所谓函数模板,**实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板。**凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据
阅读全文
摘要:#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; //值传递 void swap(int a, int b) { int tmp = a; a = b; b = tmp; } //指针传递 void swa
阅读全文
摘要:1.cin 用法1:最基本,也是最常用的用法,输入一个数字: #pragma warning(disable:4996) #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; int main() { i
阅读全文
摘要:1.抽象基类和纯虚函数 在设计时,常常希望基类仅仅作为其派生类的一个接口。这就是说,仅想对基类进行向上类型转换,使用它的接口,而不希望用户实际的创建一个基类的对象。同时创建一个纯虚函数允许接口中放置成员原函数,而不一定要提供一段可能对这个函数毫无意义的代码。 做到这点,可以在基类中加入至少一个纯虚函
阅读全文
摘要:**左值参数是可以被引用的数据对象。**例如,变量、数组元素、结构成员、引用和接触引用的指针。非左值包括字面常量(用引号括起的字符串除外,他们由其它地址表示)和包括多项的表达式。在C语言中左值最初是可出现在赋值语句左边的实体,但这是引入关键字const之前的情况。现在,常规变量和const变量都可视
阅读全文
摘要:程序: #pragma warning(disable:4996) #define _CRT_SECURE_NO_WARNINGS 1 //2022年10月19日19:29:49 #include <iostream> using namespace std; class Drink { publi
阅读全文
摘要:1.抽象基类和纯虚函数 在设计时,常常希望基类仅仅作为其派生类的一个接口。这就是说,仅想对基类进行向上类型转换,使用它的接口,而不希望用户实际的创建一个基类的对象。同时创建一个纯虚函数允许接口中放置成员原函数,而不一定要提供一段可能对这个函数毫无意义的代码。 做到这点,可以在基类中加入至少一个纯虚函
阅读全文
摘要:1.纯虚函数和多继承 多继承带来了一些争议,但是接口继承可以说一种毫无争议的运用了。 绝大数面向对象语言都不支持多继承,但是绝大数面向对象对象语言都支持接口的概念,c++中没有接口的概念,但是可以通过纯虚函数实现接口。 接口类中只有函数原型定义,没有任何数据定义。 多重继承接口不会带来二义性和复杂性
阅读全文
摘要:1.多态基本概念 多态是面向对象程序设计语言中数据抽象和继承之外的第三个基本特征。 多态性(polymorphism)提供接口与具体实现之间的另一层隔离,从而将”what”和”how”分离开来。多态性改善了代码的可读性和组织性,同时也使创建的程序具有可扩展性,项目不仅在最初创建时期可以扩展,而且当项
阅读全文
摘要:1.多态基本概念 多态是面向对象程序设计语言中数据抽象和继承之外的第三个基本特征。 多态性(polymorphism)提供接口与具体实现之间的另一层隔离,从而将”what”和”how”分离开来。多态性改善了代码的可读性和组织性,同时也使创建的程序具有可扩展性,项目不仅在最初创建时期可以扩展,而且当项
阅读全文
摘要:1.什么是函数模版 函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板 2.怎么编写函数模版 //T代表泛型的数据类型,不是只能写T, template<class T>//让编译器看到这句话后面紧跟着的函数里有T不要报错 void
阅读全文
摘要:参考链接:https://www.jianshu.com/p/31eade263e7a https://www.cnblogs.com/naixil/p/13193364.html 在中文书写时我们通常习惯段首缩进两个字,但是使用markdown编辑时我们手打空格缩进是不起效果的,因此我们需要通过使
阅读全文
摘要:C++提供了函数模板(function template)。所谓函数模板,**实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板。**凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据
阅读全文
摘要:#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; //值传递 void swap(int a, int b) { int tmp = a; a = b; b = tmp; } //指针传递 void swa
阅读全文
摘要:1.cin 用法1:最基本,也是最常用的用法,输入一个数字: #pragma warning(disable:4996) #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; int main() { i
阅读全文