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)
标签:函数,对象,成员,笔记,int,Complex,C++,析构,构造函数 来源: https://www.cnblogs.com/carnation13/p/16108036.html