自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 C++中的代码重用

C++的一个主要目标是促进代码重用。公有继承是实现这种目标的机制之一,但并不是唯一的机制。例如使用这样的类成员:本身是另一个类的对象。这种方法称为包含(containment)组合(composition)或层次化(layering)。另一种方法是使用私有或保护继承。通常,包含、私有继承和保护继承用于实现has-a关系,即新的类将包含另一个类的对象。类模板:类模板使我们能够使用通用术语定义类,然...

2018-10-21 20:35:29 1465

原创 类继承(C++)

一个简单的类从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。tabetnn.h#pragma once#include<string>using std::string;class TableTennisPlayer{private: string firstname; string lastname; bool hasTable

2018-09-27 23:26:00 289

原创 队列模拟(C++)

Queue.h#pragma onceclass Customer {private: long arrive; int processtime;public: Customer() { arrive = processtime = 0; } void set(long when); long when() const { return arrive; } int ptime...

2018-09-25 17:07:33 745 1

原创 使用指针对象的指针(C++)

再谈new和delete:对于下面的这个例子:String *favorite = new String(sayings);其中,sayings为String类的对象,这个例子中,这不是为要存储的字符串分配内存,而是为对象分配内存;也就是说,为保存字符串地址的str指针和len成员分配内存。创建对象将调用构造函数,后者分配用于保存字符串的内存,并将字符串的地址赋给str。然后,当程序不再...

2018-09-24 16:14:30 1478

原创 有关返回对象的说明(C++)

当成员函数或独立的函数返回对象时,有几种返回方式可供选择。可以返回指向对象的引用、指向对象的const引用或const对象。返回指向const对象的引用:使用const引用的常见原因是旨在提高效率,但对于何时可以采用这种方式存在一些限制。如果函数返回传递给它的对象,可以通过返回引用来提高其效率。例如:Vector force1(50, 60);Vector force2(10, 70);...

2018-09-21 20:09:17 291

原创 类和动态内存分配(C++)

动态内存和类:C++使用new和delete运算符来动态控制内存。C++在分配内存时采取的是:让程序在运行时决定内存分配,而不是在编译时决定。首先,我们先构造一个只有字符串、字符串长度和字符串个数的类:#pragma once#include<iostream>class StringBad{private: char *str; int len; static i...

2018-09-20 18:53:00 583

原创 类的自动转化和强制类型转换(C++)

可以将类定义成与基本类型或另一个类相关,使得从一种类型转换为另一种类型是有意义的。当一个类的构造函数中,有只有接受一个参数的构造函数,这个构造函数就能作为转换函数。#pragma once#ifndef STONEWT_H_#define STONEWT_H_class Stonewt{private: enum { Lbs_per_stn = 14 }; int stone;...

2018-09-19 21:24:19 719

原创 友元(C++)

C++控制对象私有部分的访问。通常,公有类方法提供唯一的访问途径,但是有时候这种限制太严格,以致于不适合特定的编程问题。在这种情况下,C++提供了另外一种形式的访问权限:友元。友元有三种友元函数友元类友元成员函数通过让函数称为类的友元,可以赋予该函数与类的成员函数相同的访问权限。介绍如何成为友元前,先介绍为何需要友元。再为类重载二元运算符时(带两个参数的运算符)常常需要友元。将Tim...

2018-09-19 15:23:29 697

原创 运算符重载(C++)

运算符重载:运算符重载是一种形式的C++多态(C++如何使用户能够定义多个名称相同但特征不同的函数的方法被称为函数多态,也称为函数重载)。C++允许将运算符重载扩展到用户定义的类型,例如,允许使用+将两个对象相加。例如,一个人早上花费了2小时35分钟,下午花费了2小时40分钟,求花费的总时间。mytime0.h#pragma once#ifndef MYTIME0_H_#define...

2018-09-18 19:19:00 230

原创 析构函数(C++)

用构造函数创建对象后,程序负责跟踪该对象,直到其过期为止。对象过期时,程序将自动调用一个特殊的成员函数——析构函数。析构函数完成清理工作,例如,如果构造函数使用new来分配内存,则析构函数将使用delete来释放这些内存。Stock的构造函数没有使用new,因此析构函数实际上没有需要完成的任务。在这种情况下,只需让编译器生成一个什么都不做的隐式析构函数即可。和构造函数已有,析构函数的名称也很特殊...

2018-09-18 14:20:01 394

原创 类的构造函数(C++)

对于Stock类,还有其他的一些工作要做。应为类提供被称为构造函数和析构函数的标准函数。类不能像结构一样初始化,原因在于,数据部分的访问状态是私有的,这意味着程序不能直接访问数据成员。程序只能通过成员函数来访问数据成员,因此需要设计合适的成员函数,才能成功地将对象初始化(如果使数据成员成为公有,而不是私有,就可以按照结构一样初始化类对象,但使数据称为公有的违背了类的一个主要初衷:数据隐藏)。一...

2018-09-17 23:07:48 486

原创 抽象和类(C++)

面向对象编程(OOP)是一种特殊的、设计程序的概念性方法,C++通过一些特性改进了C语言,使得应用这种方法更容易。下面是最重要的OOP特性:抽象;封装和数据隐藏;多态;继承;代码的可重用性。为了实现这些特性并将它们组合在一起,C++所做的最重要的改进是提供了类。抽象和类:C++中的类:类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组合...

2018-09-17 20:01:55 1830

原创 名称空间(C++)

在C++中,名称可以是变量、函数、结构、枚举、类以及类和结构的成员。当随着项目的增大,名称相互冲突的可能性也增加。使用多个厂商的类库时,可能导致名称冲突。例如,两个库可能都定义了名为List、Tree和Node的类,但定义的方式不兼容。用户可能希望使用一个库的List类,而使用另一个库的Tree类。这种冲突被称为名称空间问题。 C++标准提供了名称空间工具,以便更好地控制名称的作用域。传统的...

2018-09-17 15:58:48 300

原创 存储持续性、作用域和链接性(C++)

存储数据的方案:C++使用三种(在C++11中是四种)不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间。自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。它们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,它们使用的内存被释放。C++有两种存储持续性为自动的变量。静态存储持续性:在函数定义外定义的变量和使用关键字static...

2018-09-16 17:04:51 563

原创 关键字decltype(C++)

关键字decltype在C++98中,编写模板函数时,一个问题是非总能知道应在声明中使用哪种类型。例如:template<class T1,class T2>void ft(T1 x, T2 y) { ... ?type? xpy = x + y; ...}xpy应为什么类型呢?由于不知道ft()将如何使用,因此无法预先知道这一点。因此,在C...

2018-09-12 15:11:49 502

原创 函数模板(C++)

一、函数模板:函数模板是通用的函数描述,也就是说,它们使用泛型来定义函数,其中的泛型可用具体的类型(如int或double)替换。通过将类型作为参数传递给模板,可使编译器生成该类型的函数。如果我们需要将两个相同类型的值对调,但是这两个值可能是int类型,可能是double类型甚至是其他类型的时候,我们首先会想到编写多个swap函数,但显然这样很复杂。C++的函数模板功能能自动完成这一过...

2018-09-11 22:22:30 220

原创 内联函数(C++)

C++内联函数内联函数是C++为提高程序运行速度所做的一项改进。常规函数和内联函数之间的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序中。常规函数调用使程序跳到另一个地址(函数的地址),并在函数结束时返回。C++内联函数的编译代码与其他程序代码“内联”起来,也就是说,编译器将使用相应的函数代码代替函数调用,因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多内存...

2018-09-11 17:50:01 271

原创 简单文件输入/输出(C++)

一、写入到文本文件中 :对于文件输入,C++使用类似于cout的东西。 cout用于控制台输出的基本事实:必须包含头文件iostream。头文件iostream定义了一个用处理输出的ostream类。头文件iostream声明了一个名为cout的ostream变量(对象)。必须指明名称空间std。可以结合使用cout和运算符<<来显示各种类型的数据。文件输出与...

2018-09-11 16:09:22 252

原创 共用体union与枚举enum(C++)

一、共用体:共用体(union)是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。也就是说,结构可以同时存储int、long和double,共用体只能存储int、long或double。共用体的句法与结构相似,但含义不同。例如:union one4all { int int_val; long long_val; double double_v...

2018-09-11 14:21:22 1029

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除