
C++
止语---
这个作者很懒,什么都没留下…
展开
-
C++之抽象基类与纯虚函数
// Vitual_Base.cpp : Defines the entry point for the console application. //抽象基类与纯虚函数 #include "stdafx.h" #include #include using namespace std; class Point { private: double x, y; public: Poin原创 2017-04-03 15:31:32 · 637 阅读 · 0 评论 -
C++之函数模板
C++中有很多函数仅仅是参数类型不同,但是实现过程相似,可以写一个通用的函数,使用非实例化的参数类型,该参数在函数被调用时进行实例化,这种函数称之为模板函数普通函数:参数值未定,但参数类型已知模板函数:参数值和参数类型均为未知template <class T>//T表示未确定的模板参数类型void function(T ...)这里给出实例#include "stdafx.h" #i...原创 2017-04-03 18:48:12 · 374 阅读 · 0 评论 -
C++之异常处理
C++异常处理方式: C++异常处理使用了三个关键字:try,throw,catch。try-catch块的形式如下: try { //包含可能抛出的异常的语句; } catch(类型名[形参名])//捕获特定类型的异常 { //处理异常的语句; } try 块:将有可能出现异常的语句包含在try块中 catch块:捕获并处理,捕获和处理的条件是抛出的异常类型与cat原创 2017-04-03 17:51:02 · 280 阅读 · 0 评论 -
C++之多重继承引发的重复调用
#include "stdafx.h" #include #include using namespace std; class R//祖先类 { private: int r; public: R(int x = 0):r(x){} void f() { cout << " r = " << r << endl; } void print() { cout << "pri原创 2017-04-03 16:55:32 · 1650 阅读 · 0 评论 -
C++之菱形继承的解决之道
对于上文中的菱形继承,存在二义性的问题的解决方案: 1.直接继承祖先的两个基类,在继承时使用virtual 2.通过多重继承而来的那个子类(孙子辈的类),在构造函数时,要调用祖先类的构造函数 ,孙子辈的派生类,直接继承祖先类的成员,在继承两个父类各自拓展的成员 如图所示: 由之前的图1中的派生关系到virtual继承关系 由之前的图2中的构造关系到箭头所示的关系 //菱形原创 2017-04-03 16:37:55 · 611 阅读 · 0 评论 -
C++之多重继承
当子类继承于多个父类时,有以下两种情况存在,称之为多重继承 // Multi_Inherit.cpp : Defines the entry point for the console application. //多重继承 #include "stdafx.h" #include #inc原创 2017-04-03 15:56:43 · 516 阅读 · 0 评论 -
C++之虚函数
当父类指针或引用指向子类对象,而子类中又覆盖了父类的函数,希望用父类指针或者引用调用到正确版本的函数(父类指针或者引用实际指向的对象版本的函数),此时需要把该成员函数声明为虚函数。 // Virtual_Func.cpp : Defines the entry point for the console application. // #include "stdafx.h" #incl原创 2017-04-03 10:54:52 · 312 阅读 · 0 评论 -
friend之友元函数和友元类
// friend_func.cpp : Defines the entry point for the console application. ////写一个函数求两个点的中点 //友元函数可以访问类的私有成员,但友元函数不是类的成员函数 /* #include "stdafx.h" #include #include using namespace std; class Point {原创 2017-04-02 10:02:03 · 391 阅读 · 0 评论 -
C++中类的组合和继承关系
C++中的类有两种关系,分别是组合和继承 继承:一个类是另一个类的特例 人->学生,首先学生是一个人,其次学生还拥有学号等信息 组合:一个类有另一个类的对象 点 圆,圆有圆心和半径 这里给出组合类的使用: // complex.cpp : Defines the entry point for the console application. // #include "st原创 2017-04-03 09:21:24 · 1376 阅读 · 0 评论 -
C++继承关系
对于继承关系// Inherit_Point.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include using namespace std; /*****************************Point*******************原创 2017-04-03 10:28:26 · 369 阅读 · 0 评论 -
C++之虚析构函数
//虚析构函数 /* 如果一个类有子类,则这个类(父类)的析构函数必须是虚函数 如果父类的析构函数不是虚函数,则当(delete)删除一个指向子类对象的父类指针 时,将调用父类版本的析构函数,子类只释放了来自于父类的那部分成员变量, 而子类自己扩展的成员变量没有被释放,造成内存泄漏 */ #include "stdafx.h" #include #include原创 2017-04-03 11:52:19 · 465 阅读 · 0 评论 -
C内存对齐
关于内存对齐的原因有:1、平台原因(移植原因): 不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数 据,否则抛出硬件异常。2、性能原因: 数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内 存 访问;而对齐的内存访问仅需要一次访问。 ...原创 2017-04-10 11:45:12 · 306 阅读 · 0 评论