自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Arivn_emb

个人简介:2009年毕业于国内某知名XX大学6年的从事技术研发工作,目前在一个国内著名企业从事嵌入式技术开发,对互联网行业和软件行业有深刻的认识

  • 博客(55)
  • 收藏
  • 关注

原创 嵌套类

#include using namespace std;class rectangle{  public:class point{public:void setx(int X){x=X;}void sety(int Y){y=Y;}int getx()const{return x;}int gety()const{return y;}private

2013-12-04 09:55:59 564

转载 友元类

=======================什么是友元类=======================      当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。=======================友元类能做什么=======================      友元类可以通过自

2013-12-04 09:55:13 469

原创 类成员函数指针

#include using namespace std;class human //抽象类human{   public:   virtual void run()=0; //纯虚函数run   virtual void eat()=0; //纯虚函数eat};class mother:public human //派生类mother从抽象类human继承{

2013-12-02 19:46:03 516

原创 函数指针作为函数参数

#include using namespace std;void square(int &x,int &y){   x=x*x;   y=y*y;}void cube(int &x,int &y){   x=x*x*x;   y=y*y*y;}void Swap(int &x,int &y){   int z;   z=x;   x

2013-12-02 19:14:12 550

原创 函数指针

数组名就是指向数组第一个元素的常量指针函数名也是指向函数第一条指令的常量指针正常情况下,程序在编译后,每个函数都有一个首地址,也就是函数第一条指令的地址我们用一个指针来保存这个地址,这个指针就是函数指针,该指针可看做是函数名,因此我们可以通过该指针调用函数

2013-11-29 16:27:27 581

原创 静态成员的使用

#include using namespace std;class aspl         //将阿司匹林声明为一个aspl类,那么每箱阿司匹林就是该类的一个对象      {   public:   aspl(float p){price=p;TotalPrice=p+TotalPrice;}    //在构造函数中实例化该对象的私有成员变量price,这样就得到了一箱阿

2013-11-29 14:18:25 780

原创 静态成员函数

/*#include using namespace std;class A{   public:   void static show(){cout//定义静态成员函数show,输出私有静态成员变量n并将n自加   private:   static int n;   //声明私有静态成员变量n};int A::n=0; //定义私有静态成员变量nin

2013-11-29 10:53:48 836

原创 私有静态成员变量

#include using namespace std;class A {public:void func(){cout//定义公有成员函数func(),用该函数访问私有静态成员变量xprivate:static int x; //将静态成员变量x声明为私有};int A::x=1000;                 //定义并初始化静态成员变量int

2013-11-29 10:44:53 1103

原创 静态成员变量

1.静态成员变量是属于整个类的全局变量,它不单属于某个对象,普通成员变量是属于类中对象的变量。它不能被所有对象共享2.静态成员变量必须在全局进行定义,而成员变量由于是属于该类某个对象的,而不是属于整个类的,因此不用在全局进行定义。3.在使用静态成员变量时,可以不限定为某个具体的对象,只与类名连用即可如 A::total 而不用 A a; a.total;4.静态成员在没有对

2013-11-29 10:36:42 898

原创 慎用多继承

在单一继承可以实现的情况下,不要使用多继承

2013-11-28 20:20:29 440

原创 复杂的抽象类

#include using namespace std;class animal{  public:  animal(int);  virtual ~animal(){cout  virtual int getage() {return itsage;}  virtual void sleep()=0; //声明6个纯虚函数  virtual void eat

2013-11-28 20:17:01 487

原创 纯虚函数与抽象类

由于任何一个从抽象类派生的新类都会继承纯虚函数的特征--无任何功能因此要创建这个新类的对象必须为每一个纯虚函数赋予功能#include using namespace std;class shape{  public:  virtual double area()=0;};class A:public shape{  protected:  doub

2013-11-27 16:22:51 416

原创 模拟抽象类

抽象类为最高基类#include using namespace std;class shape{  public:  shape(){}  virtual ~shape(){}  virtual float length(){return 0;}  virtual float area(){return 0;}  virtual void show(){}

2013-11-27 14:41:37 538

原创 多继承

#include using std::cout;using std::cin;using std::endl;class father{  public:  father(){cout  virtual ~father(){cout  virtual void smart()const{cout};class mother{  public:

2013-11-27 14:27:21 430

原创 在派生类中增加函数

#includeusing namespace std;class father{  public:  virtual void smart(){cout //父类的smart()函数};class son:public father{  public:  virtual void beautiful(){cout //子类的beautiful函数

2013-11-27 14:25:09 621

原创 多继承

#include "iostream"using namespace std;class father{public:  void smart(){cout  //父类的smart()函数  virtual void beautiful(){}       //该虚函数只是给son类做个接口,没有什么实际功能  virtual ~father(){cout

2013-11-27 14:06:53 511

原创 虚构造函数和析构函数

#include "iostream"using namespace std;class A{  public:  A(){cout  virtual void func(){cout  virtual ~A(){cout};class B:public A{  public:  B(){cout  void func(){cout  ~B(

2013-11-27 11:00:43 536

原创 在虚函数中使用成员名限定可以强行解除动态联编

#include "iostream"using namespace std;class A{  public:   virtual int get(){return 0;}};class B:public A{  public:   int get(){return 1;}};void main(){  B b;  A*p=&b; 

2013-11-27 10:37:18 516

原创 虚函数的系统调用

每个对象创建虚函数时,对象都得记录这个虚函数 ,因此编译器简历 了一个叫做T表的虚函数表,每个对象都有一个指向该表的指针,叫做虚表指针,该指针用来指向虚函数表。相反虚函数表也有一个指针指向该对象,当创建派生类对象的基类部分时,该对象的指针就自动初始化为指向虚函数表的正确部分。当调用派生类对象的构造函数时,这个对象就会添加到虚函数表中去,并且将指针指向该对象的重载函数。当使用指向基类的指

2013-11-27 10:35:54 349

原创 三种调用虚函数的方式比较

#include  using namespace std;class father{   public:   virtual void run()const{cout};class son:public father{   public:   void run()const{cout};class daughter:public father{

2013-11-27 09:45:40 501

原创 动态联编的应用

#includeusing namespace std;class A{   public:   virtual int get(){return 1;}};class B:public A{   public:   int get(){return 2;}};void main(){   while (1)   {      cou

2013-11-27 09:28:20 546

原创 运行时静态联编

//在运行时的静态联编的例程如下:#includeusing namespace std;class A{   public:   int get(){return 1;}};class B:public A{   public:   int get(){return 2;}};void main(){   while (1)   {

2013-11-27 09:15:13 402

原创 编译时的静态联编

#includeusing namespace std;class A{   public:   int get(){return 1;}};class B:public A{   public:   int get(){return 2;}};void main(){   A a;   int one=a.get();   cout

2013-11-26 16:15:29 443

原创 静态联编和动态联编

联编是指一个计算机程序自身彼此关联(使一个源程序经过编译、连接,成为一个可执行程序)的过程,在这个联编过程中,需要确定程序中的操作调用(函数调用)与执行该操作(函数)的代码段之间的映射关系,按照联编所进行的阶段不同,可分为静态联编和动态联编。静态联编:调用函数和被调函数在程序编译时,他们在内存中的地址和映射关系已经确定好,动态联编:内存和地址映射关系不确定,加virtual 为动态联编,自

2013-11-26 16:07:54 398

原创 虚函数在动态联编中的应用

#include  using namespace std; class poser{  public:  virtual void beat()const{cout  protected:  int age;};class Ali:public poser{  public:  void beat()const{cout};class Le

2013-11-26 15:55:11 416

原创 虚函数

#include  using namespace std; class father{  public:  father():age(54){cout  ~father(){cout  void jump()const {cout  virtual void run()const{cout  protected:  int age;};class

2013-11-22 18:02:19 514

原创 指向对象的指针

在堆中创建的对象都是匿名的,因此创建的时候必须用类名来创建,而且要访问它们必须用指针,对的概念在数组里还有详细的讲解father*pfather = new son;解释:该段语句是在堆上创建一个新的son对象,并且返回指向该对象的指针,而赋值操作符=又将该指针赋值给指向father的指针。这样的好处是son对象可以直接访问father的数据和函数

2013-11-21 16:27:06 606

原创 虚基类不会产生两义性

#includeusing namespace std;class human{    public:    void stand(){cout};class father: virtual public human{    public:};class mother: virtual public human{    public:};

2013-11-21 16:18:16 538

原创 两义性的归属

#includeusing namespace std;class human{    public:    void stand(){cout};class father:public human{};class mother:public human{};class son:public mother,public father{};

2013-11-21 16:15:15 684

原创 继承中的重载

#includeusing namespace std;class A{    public:    void hello(){cout    void hello(int i)    {        cout        cout    }};class B:public A{    public:    void hello(){

2013-11-21 15:46:18 612

原创 多重继承容易产生两义性

//产生两义性问题的例程如下:/*#includeusing namespace std;class A{  public:    void hello(){cout};class B{  public:    void hello(){cout   };class C:public A,public B{  public: vo

2013-11-21 15:34:19 561

原创 向基类构造函数传递参数

在创建派生类的构造函数时,有两种方法对数据进行初始化第一种:在派生类中创建一个构造函数,然后初始化所有数据(从基类哪里继承来的数据和子类的数据)这种方法显然是多余的,因为基类已经有了恰当的构造函数,为何还要重复构造呢,况且在派生类中对基类进行初始化这种做法也是不可取的第二种:在派生类中创建一个构造函数,用该构造函数调用基类的构造函数并且向构造函数传递初始值显然第二种做法效率要高

2013-11-21 14:44:09 1209

原创 多继承的构造与析构

//多重继承的构造与析构顺序#includeusing namespace std;class a{    public:    a(){cout    ~a(){cout};class b{    public:    b(){cout    ~b(){cout};class c{    public:    c(){cou

2013-11-21 14:27:59 610

原创 派生中的构造与析构的执行顺序

/*#includeusing namespace std;class father{    private:    int a;    public:    father(int i){a=i;cout    ~father(){cout};class son:public father{    private:    int b;

2013-11-21 12:14:34 616

原创 多继承

#includeusing namespace std;#includeclass Father{public :void setA(int a){tall=a;};void print1(){coutprivate:int tall;};class mother{public:  //不写public 默认是privatevoid

2013-11-21 11:59:22 535

原创 私有派生

1.以私有方式派生出的子类,父类的公有和保护成员在子类中是私有的,而私有成员则是不可访问的。2.由于私有派生不利于继续派生,所以在实际中用的不多3.不管以公有还是私有的形式继承,基类的私有成员在派生类都是不可以访问的

2013-11-21 11:44:01 995

原创 继承的赋值

不能讲父类的对象赋值给子类对象因为对象的赋值操作调用了一个函数 operator=()函数,该函数会将运算符右边的这个对象的成员赋给左边的对象 operator=()函数是左边对象调用的,所以赋值操作以左边对象为准

2013-11-20 18:21:32 944

原创 公有,保护,私有 派生的成员属性

1.公有派生的前提下,基类的公有成员在派生类中仍然是公有的2.公有派生的前提下,派生类将基类的保护成员也原封不动地继承过来了3.公有派生的前提下,基类的私有成员在派生类中不可访问,只能通过父类的public函数借口来访问私有成员

2013-11-20 18:18:15 996

原创 保护成员

//保护成员#includeclass father{    protected: //保护成员只能在类内或者派生类访问,其他类不能访问    int Ft,Fh;    public:    void SFtall(int Ftall){Ft=Ftall;}    void SFweight(int Fweight){Fh=Fweight;}    void

2013-11-20 18:04:44 677

原创 继承与派生

派生是继承后,又修改某些属性或者增加某些功能#includeclass father{  private:  int Ft,Fh;  public:  void SFtall(int Ftall){Ft=Ftall;} //设置父亲身高  void SFweight(int Fweight){ Fh=Fweight; } //设置体重  void coutF()

2013-11-20 17:46:23 636

空空如也

空空如也

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

TA关注的人

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