IOS 学习 c++知识总结

c++ 中创建类

class 类名称
{
    private:只能在类的方法内部使用
    public:可以在外部使用
    protected:没有继承的时候和private是相同的,但是继承了以后就可以在继承中使用了

    (C 语言中分配内存的方式是malloc 释放内存是free)
    构造函数-----对象被创建的时候调用,初始化类对象
    析构函数-----对象被销毁的时候调用
    (栈内存和堆内存处理的方式是不一样的,堆内存的空间是交给程序员自己管理的。栈内存是系统自己管理的)
    虚函数-----用一个父类的指针分别指向不同的子类对象,调用虚函数的时候,会自动调用子类对象的自身实现的虚函数(每个类中都有一个虚函数表)
    纯虚函数-----相当于接口,定义了一套规则


    拷贝构造函数 --- 默认的是浅拷贝 什么情况下会调用拷贝构造函数??????
}

(数组的名字实际上是数组的首地址,但是我们不能把他当作指针来使用)

指针

    本质上是一个变量,存的是一个地址。所有指针的长度都是一个机器字长(32或者是64)

指针++
    
    增加的是一个“单位”的内存长度


计算数组的长度:

sizeof -----计算变量或者数组活对象占用的内存长度
strlen ------计算字符串的长度(以遇到的第一个'\0'结束字符位标准)


//初始化字符串
memset(目的字符串,内存中填充的值,填充的长度)


memcpy(目的地内存,内存数据来源,拷贝的内存数据长度)
//只用来拷贝字符串
strcpy(目的内存,内存来源)

//字符串连接 把后边的字符串,拼接到字符产1的位置
strcat(连接之后保存的字符串,被连接的字符串)

//比较字符串,比较结果是两个字符串中两个字符串中字符asci码的差值
strcmp(字符串1,字符串2)

引用:
变量的一个别名:声明引用的时候必修指定引用的对象

int var =  10

int &intRef = var

三种传参数的方式
方法中的参数是分配在栈内存中的 所以在方法结束后会自动销毁


1,传值 ----  传进去的是一个值的拷贝
2,传引用-----传的是参数本身,不会拷贝
3,传地址-----传的是参数中的变量地址

const 常量


在创建const的时候必须同时指定初始值,已经指定将不能改变
const int constValue1 ; //error 必须指定初始值
const int constValue2  //正确

char * const constValue3 = &otherVar//这是一个常指针,不可以改变指针指向的地址,但是可以改变指针指向的值


const chat * constValue4 = &otherVar //这是一个指针常量,不可以改变指针指向的值,但是可以改变指针指向的地址



#define 和 const 的区别

#define 只是简单的替换,所以没有类型判断, 无法对#define金乡常量调试

const 有数据类型,有些编译器可以挑食const常量



struct

结构体内存的对齐
结构体的对齐方式是以四个字节位一个对齐的



//结构体对齐---以空间换时间的措施

#pragma pack(1)

#pargma options align = reset


2,struct 和class 是一样都可以声明类,唯一的区别 默认的访问权限不同 (class --->private;struct --->public )



方法类的重载和重写

方法的重载---方法名相同 :方法的个数或者参数不同

重写----- 子类重写父类的方法,体现在多态上


友元-----在外部访问类中的私有属性(破坏了类的封装性)

两种类型的友元,友元函数,友元类


运算符的重载



不带int的话是前++ ++a
CPPPoint operator++ ();
带int 的话是 后++ a++
CPPPoint operator++(int);

运算符的重载:改变运算符默认的功能,但是不能够改变晕孙福的运算规律和优先级

c++中不能重载的运算符 ,,:: ,三目运算符



c ++ 中是没有super关键字的

在子类中调用父类的方法 通过 父类的类名::方法名


在类中声明字符串的方式
char brand[20]; // 数组的长度可能会不够,但是你不需要管理他的内存
char *barnd 长度是可变的 但是要注意内存的管理

清理内存

delete 指针

清理一片内存
delete[] zhizhen



申请内存

float *pFloat = new flat;

char *char = new char[20];



STL
可变的数组vector 和 map


表示字符串的一些类 string


 

//这里只是一个知识大纲,在以后会慢慢把每个知识点都总结一下的,

转载于:https://www.cnblogs.com/hytzxd/p/hytzxd.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值