自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 问答 (2)
  • 收藏
  • 关注

原创 第三十二课:初探c++标准库----------狄泰软件学院

一、重载操作符,将变量或常量左移到一个对象中#include <stdio.h>const char endl = '\n';class Console{public: Console& operator << (int i)//返回引用的可以连续操作 { printf("%d", i); return *this; } Consol

2017-01-30 17:02:50 1234

原创 第三十一课:完善的复数类----------狄泰软件学院

一、复数类应该具有的操作运算(+、-、*、/)、比较(==、!=)、赋值(=)、求模 利用操作符重载: 1.统一复数和实数的运算方式 2.统一复数和实数的比较方式Complex.h#ifndef _COMPLEX_H_#define _COMPLEX_H_class Complex{private: double a; double b;public: Co

2017-01-30 17:01:05 543

原创 第三十课:操作符重载的概念----------狄泰软件学院

解决复数相加的问题: 一、定义一个全局的函数,参数为对象的引用,通过函数调用的方法来解决#include<iostream>using namespace std;class Complex{private: int a; int b;public: Complex(int a = 0, int b = 0) { this->a = a;

2017-01-30 16:59:09 664

原创 第二十九课:类中的函数重载----------狄泰软件学院

一、类中的成员函数的重载1.构造函数的重载 2.普通成员函数的重载 3.静态成员函数的重载 那么,全局函数、普通成员函数和静态成员函数之间是否可以构成重载?万变不离其宗1.重载函数的本质为多个不同的函数 2.函数名和参数列表是唯一的标识 3.函数重载必须发生在同一作用域中#include <iostream>using namespace std;class Test{ in

2017-01-30 16:53:25 404

原创 第二十八课:友元的尴尬能力----------狄泰软件学院

一、什么是友元1.友元是c++中的一种关系 2.友元关系发生在函数与类之间或者类与类之间 3.友元关系是单项的,不能传递 4.在类中以friend关键字声明友元 5.类的友元可以是其他类或者是具体的函数 6.友元不受类中访问级别的限制 7.友元可以直接访问具体类的所有成员#include <iostream>#include <cmath>using namespace std;c

2017-01-30 16:50:22 479

原创 第二十七课:二阶构造模式----------狄泰软件学院

一、关于构造函数1.类的构造函数用于对象的初始化 2.构造函数与类名相同并且没有返回值 3.构造函数在对象被创建时自动被调用二、几个问题1.如何判断构造函数的执行结果? 2.在构造函数中执行return语句会发生什么? 3.构造函数执行结束意味着对象构造成功?#include <iostream>using namespace std;class Test{ int mi;

2017-01-30 16:48:23 1486

原创 第二十六课:类的静态成员函数----------狄泰软件学院

一、上节课没有随时可以获得当前对象的数目(必须有对象且调用getCount()函数)解决方案一:将count设置为public,用类名来访问,但是安全性不能得到保证,即使没有对象(提供直接修改count的值)打印的值可能也不为0解决方案2:类的静态成员函数 1.静态成员函数是类中的特殊的成员函数 2.静态成员函数隶属于整个类所有 3.可以通过类名直接访问公有的静态成员函数 4.可以通过对象名

2017-01-30 16:44:54 472

原创 第二十五课:类的静态成员变量----------狄泰软件学院

一、成员变量的回顾:1.通过对象名能够访问public成员变量 2.每个对象的成员变量都是专属的 3.成员变量不能在对象之间共享二、新的需求:1.统计程序运行时期某个类的对象数目 2.保证程序的安全性(不能使用全局变量) 3.随时可以获得当前对象的数目三、在c++中可以定义静态成员变量:1.静态成员变量隶属于整个类所有 2.静态成员变量的生命周期不依赖于任何对象 3.可以通过类名类名类名

2017-01-30 16:42:46 419

原创 第二十四课:经典问题解析二----------狄泰软件学院

一、构造函数与析构函数的调用顺序(1)、单个对象创建时构造函数的调用顺序1.调用父类的构造过程 2.调用成员变量的构造函数(调用顺序与声明顺序相同) 3.调用类自身的构造函数 4.析构函数与对应的构造函数调用相反(先类自身再类成员最后父类)(2)、多个对象析构时析构顺序与构造顺序相反#include <iostream>using namespace std;class Member{

2017-01-30 16:40:47 388

原创 第二十三课:神秘的临时对象----------狄泰软件学院

一、直接调用构造函数#include<iostream>using namespace std;class Test{private: int mi;public: Test(int v) { mi = v; } Test() { Test(0);//直接调用构造函数,看起来合情合理,但却是产生了一个临时对象,

2017-01-30 16:37:36 572

原创 第二十二课:对象的销毁----------狄泰软件学院

一、对象不再需要的时候如何销毁?解决方案一:为每个类提供一个public的free函数 对象不再需要时立即调用free函数进行清理(如之前的数组类) 但是很有可能忘了调用,最终导致内存泄漏解决方案二:析构函数: 析构函数没有参数也没有返回值类型声明(故析构函数不能被重载) 析构函数在对象销毁时被自动调用#include <iostream>using namespace std;clas

2017-01-30 16:34:13 535

原创 第二十一课:对象的构造顺序----------狄泰软件学院

一、对于局部对象(当程序执行流执行到对象的定义语句时进行构造)int i = 0;Test a1 = i;//a1第一个被定义,所以第一个被构造while(i < 3) Test a2 = ++i;//第二个被定义,第二个被构造if(i < 4) Test a = a1;else Test a(100);include using namespace std; cla

2017-01-30 16:31:46 368

原创 第二十课:初始化列表----------狄泰软件学院

一、类中是否可以定义const成员?class Test(){private: const int ci;public: getCI { return ci; }};在编译的时候会报错说没有初始化的const成员,那么如何来初始化类中的const成员? 在构造函数中用直接赋值的方法编译时也会出错,因为ci是一个只读成员变量,不能赋值 注注注

2017-01-18 13:11:00 496

原创 第十九课:对象的构造(下)----------狄泰软件学院

一:两个特殊的构造函数无参构造函数(没有参数的构造函数) 当类中没有定义构造函数时(注意这里是没有提供构造函数),编译器默认提供一个无参构造函数,并且其函数体为空,若类中定义了则不再提供 拷贝构造函数(参数为const class_name&) 当类中没有定义拷贝构造函数(注意这里是没有提供拷贝构造函数),编译器默认提供一个拷贝构造函数,简单进行成员变量成员变量成员变量值的复制Class T/

2017-01-18 11:16:28 705

原创 第十八课:对象的构造(中)----------狄泰软件学院

一、带有参数的构造函数#include <iostream>using namespace std;class Test{public: Test() { printf("Test()\n"); } Test(int v) { printf("Test(int v), v = %d\n", v); }}

2017-01-18 10:42:58 974

原创 第十七课:对象的构造(上)----------狄泰软件学院

一、对象中的成员变量是多少?类也属于自定义类型,故其定义出来的对象也是变量,既然是变量就会在内存中占有一席之地。 1.若定义局部的对象调用公有函数,可得i是随机值(会在栈上) 2.若定义全局的对象调用公有函数,可得i的值为0(会在全局数据区占用存储空间) 3.若定义一个类指针指向一个类的对象,在堆空间上产生一个对象,可得i的值为随机值(记得delete掉)#include<iostream>

2017-01-18 09:25:48 711

原创 十、操作符重载

一、使用c++标准库 c++标准库并不是c++语言的一部分 c++标准库是由c++语言编写而成的类库和函数的集合 c++标准库定义的类和对象都位于std的命名空间里 c++标准库的头文件都不带.h后缀 c++标准库涵盖了c库的功能 c库中#include<cstdio>using namespace std;int main(){ printf("helloworl

2017-01-03 01:24:12 404

原创 九、类的静态成员变量

一、成员变量的回顾通过对象名能够访问public成员变量 每个对象都可以有只属于自己的成员变量 成员变量不能在对象之间共享二、类的静态成员变量和静态成员函数1、静态成员变量属于整个类(注意补水对象而是类)所有,不需要依赖任何对象,不会因为对象的产生或者销毁而被产生和销毁,需要在类外单独分配空间,存储位置为全局数据区 2、静态成员变量的访问方法: 可以通过类名直接访问public静态成员(可以

2017-01-03 01:19:48 852

原创 八、构造与析构函数

一、对象初始化 如何给对象进行初始化: 为每个类都提供一个public的initialize函数,对象创建后立即调用initialize函数进行初始化#include<iostream>using namespace std;class student{private: int i;public: void initialize() { i =

2017-01-03 01:13:18 471 1

原创 七、类中的封装

一、类的组合:(1).如电脑类由键盘类、鼠标类、显示类、cpu类、memory类等类组成 (2).类通常可以分为以下两个部分: a.类的实现细节 b.类的使用方式(用户一般只关心怎么使用,而不会关心内部到底如何实现)二、类的封装(1).当使用类的时候不需要关心其实现细节 (2).当创建一个类时,才需要考虑其内部实现细节 (3).封装的基本概念: a.并不是类的每个属性都是对外公开的 b

2017-01-03 01:00:15 594

原创 六、面向对象的基本概念

一、基本概念类和对象是面向对象中的两个基本的概念类指一类事物,是一个抽象的概念对象指属于某一类的一个实体,是一个具体存在的事物 类是一种模板,可以通过这种模板创建出不同的对象实例 对象实例是模板的一个具体变现形式 一个类可以有很多对象,而一个对象必属于某个类类和类之间是有关系的(如老虎和华南虎)二、类和对象的意义:类用于抽象的描述一类事物所特有的属性和行为 如:

2017-01-03 00:55:31 404

原创 五、专题一经典问题解析

问题一、const与引用之间的疑惑先总结: 1.只有字面量初始化的const常量才会进入符号表(如const int a = 1; 1是字面量) 对const常量取引用(相当于取地址)会导致编译器为其分配空间,但空间里的值不会被使用 使用其他变量初始化的const常量仍然是只读变量(如 int a =4; const b = a; 最后b是只读变量) 2.被volatile修

2017-01-03 00:51:39 385

原创 四、新的关键字

一、动态类型分配(c中用库函数实现,c++中用关键字)(1).动态内存分配用new关键字 (2).删除用delete关键字#include<stdio.h>int main(){ int *p1 = new int; char *p = new char[10]; *p1 = 5; p[0] = 'a'; printf("%d\n",*p1);

2017-01-03 00:42:54 385

原创 三、函数的升级

一、内联函数宏在c语言里有副作用,c++中用const int = 3;的方法解决 c语言里的宏定义可以定义一个代码片段,看起来像函数却不是函数,c++也有类似的解决方案内联函数:c++中推荐用内联函数代替宏代码片段,c++中用inline关键字声明内联函数 inline int fun(int a, int b) { return a二、内敛函数工作原理:(1).c++编译器可以将

2017-01-03 00:36:32 506

原创 二、c++中的引用

1.变量名回顾:(1).变量是一段实际连续内存空间的别名 (2).程序中通过变量来申请并命名存储空间 (3).通过变量的名字可以使用内存空间 在c++中新增加了引用的概念 引用可以看做已定义的变量的别名2.引用的例子:int a = 3; int& b =a; //引用时必须马上用其他参数进行初始化,但如果引用作为函数参数时不用初始化,注意两者的类型要一样 b = 5; 结果打印a和b

2017-01-03 00:27:08 415

原创 一、c到c++的升级

1.c++中更强调语言的“实用性”,所有变量都可以在需要时再定义#include <stdio.h>int main(int argc, char *argv[]){ int c = 0; printf("Begin...\n"); for(int i=0; i<10; i++)//用到时再定义 { for(int j=0; j<10; j++)

2017-01-02 23:56:57 627

空空如也

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

TA关注的人

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