C++类和对象学习笔记
2022/4/6 20:50:09
本文主要是介绍C++类和对象学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
基本概念
结构体和类
结构体和类非常相似,它们之间除了写法格式上的不同,结构体用的是\(struct\),而类用的是\(class\)定义外,类中还有特定的\(public\)和\(private\),其中,\(public\)为公共数据,可以在类外使用,而\(private\)为类内数据,只能在类内使用。
成员函数
类内成员函数的定义
方法一
成员函数在类外面
class point { void point::car(int x) { return x*x; } }
即返回值类型 类名::成员函数名(参数表)
{
函数体
}
方法二
成员函数直接定义在类里面
用法和结构体一样,不多解释了
方法三
使用内联成员函数,关键字\(inline\)
类对象的定义及使用
和结构体一样,不多$\LARGE{bb}$了
构造函数和析构函数
对象初始化和构造函数
对象的初始化不能直接像结构体一样直接套等于,要用到构造函数,构造函数名和类名一样,一般对私有成员赋初值,形式一般有如下两种。
第一种
类名 对象名[(实参表)]
class Complex { private: int a; int b; public: Complex(int c,int d) { a=c; b=d; } int car() { return a+b; } } int main() { Complex A(1,2);//定义对象A时调用了构造函数Complex //分别对a和b赋初值1和2 cout<<A.car()<<endl; return 0; }
第二种
类名*指针变量名=new类名[(实参表)]
例如:Complex *pa=new Complex(1,2);
输出时调用pa->car()
同时也可以用delete释放
例如:delete pa;
\(tip:\)
1、构造函数名和类名要一样。
2、没有返回值
3、写在类里面外面都可以
4、构造函数可以不带参数
用成员初始化列表对数据成员初始化
语法格式如下:
类名::构造函数名([参数表])[:(成员初始化列表)]
{
//构造函数体
}
成员初始化列表的一般形式语言为:
数据成员名1(初始值1),数据成员名2(初始值2),······
例如:
Complex::Complex(int c,int d):a(c),b(d) { //使用成员初始化列表对数据成员初始化 }
构造函数的重载
用法参考函数的重载,也不多bb了
带默认参数的构造函数
emm好像也没啥好说的
析构函数
语法如下:
~Complex();//声明析构函数 ······ Complex::~Complex()//定义析构函数 { //函数部分 }
也可直接显式定义,如下:
~Complex()//定义析构函数 { //函数部分 }
这点也和结构体类似\(qwq\)
\(tips:\)
1、析构函数名和类名一样
2、无返回值
3、无参数
4、撤销对象时,会自动调用析构函数(如主函数结束return 0时会调用析构函数)
对象数组与对象指针(待补,指针还不咋会qwq)
这篇关于C++类和对象学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升