雄激素高吃哪些中药降:VC++深入详解之C++笔记

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 22:21:23
 

VC++深入详解之C++笔记

分类: 语言类C、C++、java 2010-12-20 20:44 15人阅读 评论(0) 收藏 举报

一 类的继承

假设有一个动物类,他们都有呼吸,睡觉,吃饭

继承起来就是这样子的:

class animal

{

public:

animal()

{

cout<<”animal construct”<

        }

        ~animal()

{

cout<<”animal destruct”<

}

        void eat()

{

                cout<<”animal eat”<

        }

void sleep()

{

                cout<<”animal sleep”<

        }

void breathe()

{

                cout<<”animal breathe”<

        }

};

下面定义一条鱼:

class animal :public animal

{

fish()

{

cout<<”fish construct”<

}

~fish(){

cout<<”fish destruct”<

}

};

这样鱼就继承了animal的eat、breath、sleep方法,并且可以通过main函数查看父类和子类的创建和析构顺序。

 

类中只读变量的初始化

class point

{

public:

        point(): x(0), y(0)

private:

        const int x;

        const int y;

};

 

子类初始化父类的带参构造函数

class animal

{

public:

animal(int height, ine weight)

{

cout<<”animal construct”<

        }

        ~animal()

{

cout<<”animal destruct”<

}

        void eat()

{

                cout<<”animal eat”<

        }

void sleep()

{

                cout<<”animal sleep”<

        }

void breathe()

{

                cout<<”animal breathe”<

        }

};

下面定义一条鱼:

class animal :public animal

{

fish():animal(400, 300)

{

cout<<”fish construct”<

}

~fish(){

cout<<”fish destruct”<

}

};

 

类的继承与类的成员的访问特性

public 定义的成员可以在任何地方被访问

protected定义的成员只能在该类和其子类中访问

private定义的成员只能在该类自身中访问

类的继承时一般定义为public继承,比如上面的鱼继承动物。而类默认为private继承,就是父类的成员在子类中都变成了private类型的访问权限。如果以protected的方式则基类中的public和protected成员在派生类中都变成了protected类型的访问权限。

 

多重继承问题

一个类可以从多个基类中派生。在派生类由多个基类派生的多重继承模式中,基类是用基类表语法成分来说明的,多呈继承的语法与单一继承很类似,只需要在声明继承的多个类之间加上逗号来分隔,定义形式为:

class B: public C, public D

{

        ……

};

基类的说明顺序只对要调用构造函数和析构函数时有影响:

构造函数:如果代码依赖于B的D部分要在C部分之前初始化,则说明顺序很重要,可以在继承表中吧D类放在C类的前面。初始化是按照基类表中的说明顺序进行初始化的。

激活析构函数进行清除的顺序:析构函数的调用按基类表说明顺序相反的方向进行调用的。

 

虚函数与多态性

C++的多态性用一句话来概括就是:在基类的函数前加上virtual关键字,在派生类重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象是派生类,就调用派生类的函数,如果对象是基类就调用基类的函数。

其中,对象的实际类型指的是定义的类型。在C++中可以定义一个指向派生类的指针而把这个指针指向基类,这句话的含义就是该指针的实际类型还是派生类。

 

纯虚函数

virtual void breathe() = 0;

有纯虚函数的类不能实例化对象。

 

函数的覆盖与隐藏

函数的覆盖是发生在基类和派生类之间的,并且函数完全相同,基类的函数为虚函数(所以派生类的函数也是虚函数?)这是覆盖,其它的都属于隐藏。

C++的多态性是通过虚函数来实现的,所以函数的覆盖总是和多态关联在一起。这里就会回顾上面的虚函数与多态性的“根据对象的实际类型确定调用的函数”。

 

引用

    在调用函数传参时经常使用指针传递:一是避免在实参占较大内存时发生值的复制,二是完成特殊作用,比如修改内存内容。

引用一般用于函数形参上,也可以达到指针的目的,有时效果比指针好(可读性上)。

头文件包含问题的解决

    使用#define宏定义

<>和””的区别

<>表示编译器搜索头文件的时候先从系统目录下开始搜索,然后再搜索PATH环境变量所列出的目录,不搜索当前目录。””表示从当前目录à系统目录àPSTH环境变量所列出的目录