1.内联函数:声明加inline,编译就会直接把代码嵌入当内置函数。(一般规模小且频繁调用)

2.函数重载:函数名一样,参数不同,返回结果不同(体现多态性)

3.函数模板:

template<typename T>

T max(T a, T b,T c){

…

}

int i1=1,i2=2,i3=3,i;

i=max(i1,i2,i3);//自动替换T

4.指针使用:

int *x=3; (x存3的地址)

int y=3;

int *x;

x=&3;(x存3的地址)

交换的实例

void swap(int *p1,int *p2){

int temp;

temp=*p1;

*p1=*p2;

*p2=temp;

}

int *x1,*x2;

swap(x1,x2);//传入地址,虚实结合

( 不能写成swap(*x1,*x2))

如果是void swap(int &p1,int &p2),则调用int x=1,y=2; swap(x,y)

5.运算符重载:

声明:

Complex Complex::operator + (Complex &c2){

Complex c;

c.real=real+c2.real;

c.imag=imag+c2.imag;

return c;

}

c1+c2等效于:c1.operator+(c2)

. * :: sizeof ?: 不能重载

6.多重继承的二义性:

C继承了A和B(AB中都用display()函数)

c1.=3; c1.isplay(); (以此来区分A和B,否则编译不通过)

7.虚基类:

A—>B class B:virtual public A{};

A—>C D继承B和C需要初始化ABC classD:public B,public C{D(int n);A(n),B(n),C(n)}

编译时构造函数只执行D中,BC忽略,保证虚基类A中数据不被多次初始化

调用方式和6一样

8.基类的意义(面向对象的意义:轮子与汽车)

1.轮子基类带来的规范

2.轮子基类带来的多样性定制(轮子厂只需设置花纹等)

3.轮子带来的高效,不用重复造轮子,只管造汽车

4.轮子技术的保密性

9.虚函数

A->B

A有3个参数 B有4个参数

A的指针先指A输出3个,再指B只能输出3个。

基类加了virtual声明的函数,继承后再调用时会自动根据对象进行重载,体现动态多态性

虚函数的意义:提供继承实现多态的。

10.抽象类:

用来作为基类派生的,定义一种规范。

纯虚函数,不初始化,让子类初始化。


上一篇:什么是c++输出流
下一篇: 无

隐私声明 | 法律公告 | 退费须知 | 网站地图
2002-2019 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56