运算符重载

10.2 运算符重载的方法运算符重载的方法是定义一个重载运算符的函数,使指定的运算符不仅能实现原有的功能,而且能实现在函数中指定的新功能。运算符重载实际上是函数的重载。重载运算符的函数一般格式如下:函数类型  operator 运算符名称 ( 形参表 ){对运算符的重载处理;}例子中实现了一个简单...

2018-06-01 22:03:18

阅读数:20

评论数:0

公用数据成员的保护

6.1常对象定义常对象的一般形式为:类名 const 对象名 [(实参表)];在定义常对象前,必须同时对之初始化,之后不能再改变。说明:1)如果一个对象声明为常对象,则通过该函数只能调用它的常成员函数,而不能调用该对象的普通成员函数(除了构造函数和析构函数)。2)常成员函数可以访问常对象中的数据成...

2018-06-01 17:48:51

阅读数:10

评论数:0

this指针

它是指向本类对象的指针,他的值是当前被调用的成员函数所在的对象的起始地址。所谓“调用对象a的成员函数f”,实际上是在调用成员函数f时使this指针指向对象a,从而访问对象a的成员。...

2018-05-30 16:59:05

阅读数:10

评论数:0

纯虚函数和抽象类

4.1纯虚函数使用背景:有时在基类中将某一成员函数定为虚函数,并不是基类本身的要求,而是考虑到派生类的需要,在基类中预留一个函数名,具体功能留给派生类根据需要去定义。声明纯虚函数:virtual 函数类型 函数名(参数列表)=0;注意:1)纯虚函数没有函数体2)最后面的“=0”并不表示函数返回值为...

2018-05-30 16:43:28

阅读数:12

评论数:0

静态关联和动态关联

3.2静态关联与动态关联关联:确定调用的具体对象的过程。(指把一个函数名和一个类对象捆绑在一起,建立关联)。静态关联:在编译时即可确定其调用的虚函数属于哪一个类,例如函数重载和通过对象名调用的虚函数。由于是在运行前进行关联的,又称为早期关联。动态关联:编译系统把他放在运行阶段进行处理,在运行阶段确...

2018-05-30 15:29:48

阅读数:70

评论数:0

利用虚函数实现动态多态性

12.3.1 虚函数的作用能否用同一个调用形式来调用派生类和基类的同名函数。在程序中,不是通过不同的对象名去调用不同派生层次中的同名函数,而是通过指针调用它们。c++中的虚函数就是用来解决动态多态问题的。所谓虚函数,就是在基类声明函数是虚拟的,并不是实际存在的函数,然后在派生类中才正式定义此函数。...

2018-05-28 17:48:09

阅读数:143

评论数:0

c++ 类的继承与派生 随便写的练习

#include <iostream> using namespace std; const double pi = 3.14; class Point { protected: double x,y; public: Point( do...

2018-05-28 16:13:06

阅读数:8

评论数:0

多态性与虚函数

12.1多态性的概念多态性是面向对象程序设计的一个重要特征。多态性:向不同的对象发送同一消息,不同的对象在接受时会产生不同的行为。例如函数的重载和运算符重载都是多态现象。在c++中,多态性的表现形式之一是:具有不同功能的函数可以用同一函数名,这样就可以实现一个用一个函数名调用不同内容的函数。从系统...

2018-05-28 15:09:45

阅读数:9

评论数:0

程序设计MOOC 奇怪的类复制

#include <iostream> using namespace std; class Sample { public: int v; Sample( const int vv = 0 ) { v = vv;...

2018-05-27 20:24:59

阅读数:12

评论数:0

程序设计MOOC 学生信息处理程序

#include <iostream> #include <string> #include <cstdio> #include <cstrin...

2018-05-27 19:58:16

阅读数:27

评论数:0

程序设计MOOC 神秘的数组初始化

#include <iostream> using namespace std; int main() { int * a[] = { NULL, NULL, new int[1], new int[6] }; ...

2018-05-27 19:40:25

阅读数:10

评论数:0

重载运算符 程序设计实习MOOC 全面的MyString

#include <cstdlib> #include <iostream> using namespace std; int strlen(const char * s) { int i = 0; ...

2018-05-27 19:26:45

阅读数:13

评论数:0

派生类的构造函数和析构函数

前言:在设计派生类的构造函数时,希望执行派生类的构造函数时,使派生类的数据成员和基类的数据成员同时被初始化。解决这个问题的思路是:在执行派生类的构造函数时,调用基类的构造函数。5.1简单的派生类的构造函数派生类构造函数一般形式为派生类构造函数名(总参数表):基类构造函数名(参数表){派生类中新增数...

2018-05-27 16:57:54

阅读数:42

评论数:0

类的继承与派生(二)

4.派生类成员的访问属性讨论访问属性时,一般考虑以下几种情况1.基类成员函数访问基类成员。(ok)2.派生类的成员函数访问派生类自己增加的成员。(ok)3.基类的成员函数访问派生类的成员(no)4.派生类的成员函数访问基类的成员5.派生类外访问派生类的成员(根据公有成员或者私有成员来定)6.在派生...

2018-05-27 12:04:11

阅读数:16

评论数:0

类的继承与派生(一)

继承性是面向对象设计的最重要特征,实现了软件的可重用性。1.继承与派生的概念在c++中,所谓继承就是在一个已存在的类的基础上建立一个新的类。已存在的类称为基类或父类,新建立的类称为派生类或者子类。一个新类从已有的类那里获得其已有的特性,这种现象称为类的继承。从已有的类产生一个新类,称为类的派生。继...

2018-05-27 11:44:03

阅读数:33

评论数:0

leetcode 买卖股票的最佳时机Ⅱ

因为可以进行多次买卖,这是一个贪心问题,只要当天股票价格比前一天股票价格上涨,便卖出#include <vector> using namespace std; class Solution { public: int maxProfit(vec...

2018-05-24 10:11:18

阅读数:26

评论数:1

构造函数

成员函数的一种①名字与类名相同,可以有参数,不能有返回值(void也不行)②作用是对对象进行初始化,如给成员变量赋值。③如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数。默认构造函数为参数,不做任何操作。如果定义了构造函数,则编译器不生成默认的无参数的构造函数。对象生成时构造函数自...

2018-05-22 20:38:06

阅读数:5

评论数:0

类和对象的基本概念二

1.类的成员函数的函数体和类的定义分开来写。写法:函数类型  类名::函数名{函数体}表明后面的函数是类的成员函数而非普通函数。那么,一定要通过对象或对象的指针或对象的引用才能调用。2.类成员的可访问范围范围访问关键字:①private:私有成员,只能在成员函数内访问。②public:公有成员,可...

2018-05-22 19:45:09

阅读数:6

评论数:0

类和对象的基本概念

结构化程序数据结构 + 算法不足之处:1. 结构化程序设计中,函数和其所操作的数据结构没有直观的联系。2.随着程序规模的增加,程序逐渐难以理解,很难一下子看出来。例如:①某个数据结构到底有哪些函数可以对它进行操作。②某个函数到底用来操作哪些数据结构的。③任何两个函数之间存在怎样的调用关系?面向对象...

2018-05-20 21:14:55

阅读数:21

评论数:0

内联函数 和 重载函数 和 缺省函数

内联函数目的:函数调用是有时间开销的(参数入栈、函数地址入栈)。如果函数本身只有几条语句,执行非常快·,而且函数会被反复执行很多次,相比之下,调用函数的开销会显得特别大。机理:引入了内联函数机制,编译器处理对内联函数的调用语句时,是将整个函数的代码插入到调用语句中,而不会产生调用函数的语句。内联函...

2018-05-20 19:32:45

阅读数:8

评论数:0

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