C++面向对象笔记

::域解析符号
1、命名空间
2、类的函数的定义(体外定义)
    返回值 类名::函数名(参数列表)

"stdio.h" :当前环境进行寻找
<stdio.h> :系统环境进行寻找

<iostream.h> :
    旧的头文件,非标准输入输出流,可以直接使用cin,cout
<iostream>   :
    新的头文件,标准输入输出流,不可以直接使用cin,cout,必须要使用标准命名空间
    
bool函数 :非零即一!!!

C++中的const常量会被编译器放到符号表中,和一般变量使用的不是一个存储空间,不可以用指针进行更改,因为他的存储空间不是一般的内存,是符号表。

C++中const和define的区别:
1、define是由预处理器处理的,单纯的文本替换;
   const是由编译器进行处理的,提供类型检查和作用域检查。
2、define没有数据类型;
   const有数据类型。
   
C++中引用:互为别名。引用在定义时需要加'&',但是在使用的时候不能添加,使用时添加'&'代表取地址。

using指令的意义:
            using NSA::a此时是作为申明;
            using namespace std此时是作为编译指令。

内联函数(inline):
        当函数体比较简单时内联函数可以提高效率;

#define和inline的区别:
1、#define只是简单地文本替换,无数据类型检查;
    inline是内嵌函数,相当于副本调用。
2、#define是在预编译期,预处理器对其进行展开;
    inline是在编译时编译器对其进行展开。
3、#define在本质上不是函数;
    inline是函数。

#define在使用时要多使用括号。

C++中的函数重载:
1、重载函数在本质上是相互独立的不同函数
2、重载函数的函数类型不同;
3、函数的返回值不能作为函数重载的依据;
4、函数重载是由函数名和参数列表决定的;(参数列表不同包括参数的个数不同、类型不同和排列顺序不用等)

函数重载的二义性:
两个函数一个有两个参数,一个有三个参数,但是第三个参数是默认参数,在调用时编译器就不知道你在调用哪一个函数。

int add(int a,int b);
int add(int a,int b,int c = 10);

调用add(10,20);时编译器就会报错,产生了二义性。

面向对象的特点:
1、抽象:隐藏了具体实现,对外只表现关键使用;
2、封装:通过公有的函数模块操控私有的数据就是封装,只提供外部接口;
3、继承:新类是原来的类派生出来得,只是增加或者修改了部分属性和操作。(一般情况下只增加不修改,如果通过新的类对原来的类进行修改,原来的类也会进行变更)
4、多态性:同一个函数对不同的对象产生不同的结果。

面向对象的优点:
    通过继承、封装、多态降低了程序的耦合度,并结合设计模式使程序更容易修改和拓展,可以复用。
    耦合度就是模块之间的依赖程度。
    面向对象编程要做到高内聚,低耦合。

面向对象的缺点:
    相比较C语言,运行的效率会下降。
    
类和对象:
1、将属性和方法封装在类中
2、访问控制

class father
{
private(protected):
        (属性)私        外部不可访问

public:
        (方法)公        外部可以访问    
};

C语言中的struct和class的区别:
    class具有成员函数,在public中;
    struct(c)只含有数据;

C++中的struct和class的区别:
    struct(C++)默认权限是public;
    class的默认权限是private;

类模板:class可以表示模板类型;
        struct不可以表示模板类型。
        
类中的成员函数在外部进行定义:
    返回值 类名::函数名(参数列表);
    
int *ptr = (int *)malloc(sizeof(int));
    *ptr = 3
    free(ptr);
    
等同于
int *ptr = new int;
    *ptr = 3;
    delete ptr;
    
int *ptr = new int(3);
    delete ptr;

new 数组
int *array = new int[10];
    array[2] = 9;
    delete []array;
    
    
    
    
    
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值