C++类和对象学习笔记

1|0基本概念

1|1结构体和类

结构体和类非常相似,它们之间除了写法格式上的不同,结构体用的是struct,而类用的是class定义外,类中还有特定的publicprivate,其中,public为公共数据,可以在类外使用,而private为类内数据,只能在类内使用。

1|2成员函数

类内成员函数的定义
方法一
成员函数在类外面

class point { void point::car(int x) { return x*x; } }

即返回值类型 类名::成员函数名(参数表)
{
函数体
}

方法二
成员函数直接定义在类里面
用法和结构体一样,不多解释了

方法三
使用内联成员函数,关键字inline

1|3类对象的定义及使用

和结构体一样,不多bb

2|0构造函数和析构函数

2|1对象初始化和构造函数

对象的初始化不能直接像结构体一样直接套等于,要用到构造函数,构造函数名和类名一样,一般对私有成员赋初值,形式一般有如下两种。
第一种
类名 对象名[(实参表)]

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、构造函数可以不带参数

2|2用成员初始化列表对数据成员初始化

语法格式如下:
类名::构造函数名([参数表])[:(成员初始化列表)]
{
//构造函数体
}
成员初始化列表的一般形式语言为:
数据成员名1(初始值1),数据成员名2(初始值2),······
例如:

Complex::Complex(int c,int d):a(c),b(d) { //使用成员初始化列表对数据成员初始化 }

2|3构造函数的重载

用法参考函数的重载,也不多bb了

2|4带默认参数的构造函数

emm好像也没啥好说的

3|0析构函数

语法如下:

~Complex();//声明析构函数 ······ Complex::~Complex()//定义析构函数 { //函数部分 }

也可直接显式定义,如下:

~Complex()//定义析构函数 { //函数部分 }

这点也和结构体类似qwq
tips:
1、析构函数名和类名一样
2、无返回值
3、无参数
4、撤销对象时,会自动调用析构函数(如主函数结束return 0时会调用析构函数)

4|0对象数组与对象指针(待补,指针还不咋会qwq)


__EOF__

本文作者carnation13
本文链接https://www.cnblogs.com/carnation13/p/16108036.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   carnation13  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示