C++学习笔记基础系列1

这篇博客介绍了C++中的引用特性,包括常引用和字面量引用的使用。接着讲解了函数指针的声明和使用,包括typedef的三种方式。还讨论了构造函数和析构函数的作用、分类以及调用方法。此外,提到了new和delete与C语言中的malloc和free的区别,并解释了静态成员变量和成员函数的特点。最后,文章涵盖了友元函数和友元类的概念,以及运算符重载的基本原则。

引用语法:
1、常引用 int x=1; const int &y=x; //变量引用只读属性 不能通过y修改x
2、用字面量初始化
const int x =1;//C++编译器把x放在字符表中
const int &x=1;//C++编译器会主动给字面量分配内存
// int &x=1;//普通字面量没有对应的内存空间,所以不能这么用

#函数指针基本语法主要分为以下三种:
//声明一种函数类
1、typdef void (myTypFunc)(int a,int b);
//myTypFunc *myfuncp = NULL; //定义一个函数指针 这个指针指向函数入口地址
//声明一个函数指针类型
2、typdef void(*myPtypFunc)(int a,int b);//声明一个指针的数据类型
//myPtypFunc fp = NULL; //通过函数指针类型定义一个函数指针
//定义一个函数指针变量
3、void (*myvarPFunc)(int a,int b);

构造函数和析构函数
1、定义对象时自动调用构造函数,对象生命周期结束自动调用析构函数
先创建 后释放
Test(){
cout<<“我是一个构造函数,被执行了””<<endl;//无参数 无返回值的构造函数
}
~Test(){
cout<<“我是一个析构函数,被调用了”<<endl;析构函数
}
2、用途:
构造函数:完成对属性的初始化工作
析构函数:释放资源
3、分类:
无参构造函数、有参构造函数
赋值(拷贝)构造函数:用一个对象初始化另一个对象 Test(const Test1& obj);
默认构造函数
4、调用方法
①括号法 Test t1(1,2);
②=号法 Test t1=5;
③直接调用 手动调用构造函数 Test t2=Test(1,2);(对象初始化) t1=t2;(对象赋值)

NEW和delete
C语言 malloc free
int p = (int)malloc(sizeof(int)* 10);
free(p);
C++ new delete
int *p = new int[10];
两者区别之一:malloc和free不会调用对象构造函数和析构函数

静态成员变量和成员函数
类的static成员变量为所有该类所属的对象共有
静态成员函数不能使用普通成员变量 普通成员函数
C++面向对象模型、This指针
在这里插入图片描述
void const test(int a,int b);无论const在哪个位置,修饰的都是This指针所指向的内存空间,加入a,b是test的两个成员变量,则无法进行This->a=200;这种修改操作

友元函数和友元类
关键字 friend 位置与public private没有关系
采用友元函数可以实现通过对象参数访问对象私有属性(感觉和公有方法功能差不多??)
B是A的友元类,则B中所有所有成员函数都是A的友元函数,B可以通过A对象直接修 改A对象的私有参数
友元函数和友元类破坏了类的封装性,但是在有些实际应用场景需要破坏类的封装性,所有相当于程序的后门。
运算符重载
关键字:operate(使用例子加号重载operate+)
从全局函数出发写运算符重载( 运算符重载的本质是一个函数)
①运算符重载函数名定义
②首先承认操作符重载是一个函数 定义函数名operator++
③分析函数参数 根据左右操作数的个数,operator++(Complex &c1)
④分析函数返回值 Complex& operator++(Complex &c1) 返回它自身

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值