注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

轻松度过每一天

真的猛士敢于直面惨淡的人生,敢于正视淋漓的鲜血,这是怎样的哀痛者和幸福者!!

 
 
 

日志

 
 
关于我

When you are young, you may want several love experiences. But as timegoes on, you will realize that if you really love someone, the wholelife will not be enough. You need time to know, to forgive and to love.All this needs a very big mind.

网易考拉推荐

二、类,友元,继承,多态,析构  

2014-08-06 17:06:17|  分类: com.myCompany.Te |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1,类:成员变量(属性),成员函数(方法,用const修饰的函数不能更改属性) 如String getNmae() const;

   静态成员函数只能操作静态成员变量,普通函数可操作静态成员变量。

2.友元,用friend关键子修饰。

####calssA.h####

clsaa B

Class A

   friend class B//友元类

   void print();

可调用友方的方法

###classB.h####

class A

class B

   friend void print();//相当于该函数是该类中的函数,直接用

友元方法

 

 

3.继承

形式:class Bpublicprotected)(privateA{}

公有继承:父类的属性保持不变,子类可调用父类publicprotected

保护继承:父类中的public继承为protected,子类可调用父类public    protected

私有继承:父类中的publicprotected继承为private

 

多继承:class Cpublic Apublic B{}

这又关系到析构函数。当子类实例化对象,必将调用父类构造方法。

Teacher a;//实例化对象a

a.print();

    PrimaryTeacher b;//primaryTeacher继承自Teacher

    b.print();

student,student我是Teacher

student,student我是PrimaryTeacher

PrimaryTeacher。。。。//析构时先析构子类

~Teacher......//再是父类

~Teacher......//因为这是一个栈操作

4.多态

多态:(虚函数)关键字virtual。析构函数通常声明为虚函数

Teacher* gs = new GoodStudent;

这种由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态

classA

{

public:

void print1(){cout<<"This is A1"<<endl;}

virtual void print2(){cout<<"This is A2"<<endl;}

 

};

classB:publicA

{

public:

void print1(){cout<<"This is B1"<<endl;}//方法的覆写

void print2(){cout<<"This is B2"<<endl;}

};

 

int main()

{

//为了在以后便于区分,我这段main()代码叫做main1

A* a = new B;

a.print1();

a.print2()

 

结果:

this is A1

this is B2

 

5.命名空间

命名空间:当做一个大型的项目时,很可能大家用了相同名字的变量和方法。

而命名空间可以很清楚的让你制定你需要的那个变量。

 

#####mian.app#####

#include <iostream>

using namespace std;

namespace base{

   int fun = 3;

}

//using namespace base;

//using base::fun;

int main(){

   cout << fun <<endl;}

6.初始化成员变量

构造函数

Teacher::Teacher(int number, int age, String name) : m_iNum(number),m_iAge(age), m_sNam(name){}

在对象建立时就会调用并初始化

 

其子类PrimaryTeacher有一独有变量m??_iWage

因为在PrimaryTeacher生成对象时会调用父类构造,故

PrimaryTeacher()int number, int age, String name), int wage : Teacher(number, age, name), m_iWage(wage){}

  评论这张
 
阅读(26)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018