c++ 类和对象(学习记录二)

c++ 类和对象

1. 概念及定义

可以先参考c++类和对象

  • 类的构造函数

构造函数的名称与类的名称完全相同,不会返回任何类型和void,属于类的一种特殊成员函数,在每次创建类的新对象时执行。

构造函数的作用:初始化对象的数据成员。若类中没有显示定义构造函数,系统会自动生成拷贝构造函数。

class A
{
private:
    int  _a;
    int _b;
public:
    A();                    // 默认构造函数
    A(int a, int b);        // 构造函数 ,带参数
    A(int a = 10, int b = 2);    // 默认构造函数
};

如果没有添加构造函数,系统会默认构造函数。一个类只能有一个默认构造函数

其中构造函数为带参数的构造函数,这样在创建对象时会给对象赋初始值。

A:A(int a, int b);

拷贝构造函数形式:

A(const A & obj); //拷贝构造函数,obj为对象引用

  • 类的析构函数

析构函数:类的一种特殊成员函数,在删除所创建的对象时执行。写法 与类的名称一致,在前面加个~作为前缀,不会返回任何值,不会返回任何值。

作用:对象消亡时,自动被调用,用来释放对象占用的空间。

class A
{
public:
    A(int i);                    // 构造函数
   ~A();                  //析构函数
A t0(0);      //栈中对象,程序结束时有系统释放
A *p = new A(0);    //堆中分配内存,需要手动释放

  • 类的友元函数

类的友元函数定义在类外部,有权访问所有私有成员和保护成员;

友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。

friend class A    //声明类A所有成员函数为类的友元

  • 内联函数 inline

内联函数为了解决函数调用效率,一般为小于10行小函数,不允许使用循环语句和开关语句。


  • this 指针

c++中每个对象都可以通过this指针来访问自己的地址,友元函数不属于类的成员函数因而没有this指针。

this指针只能在成员函数中使用

this

  • 指向类的指针

访问指向类的指针成员,需要使用成员访问运算符->


2. 写法

  • friend – 友元函数关键字
  • -> – 类指针访问成员运算符
  • inline – 内联函数
  • this – this指针

3. 案例

class A
{
public:
	A() {
		a = b = 0;
	}
	A(int i,int j) {
		a = i;
		b = j;
	}
	void copy(A & aa);
	void print();
private:
	int a, b;
};
void A::copy(A & aa)
{
	if(this == &aa) return ;//如果this指针指向的是当前对象的地址,则直接跳出函数,反之将对象的值付给指针所指向的地址。
	*this = aa;//对于指针this进行赋值,* + 指针,表示地址。
}

此处, *this是操作该成员函数的对象的地址


参考资料
  1. C++的构造函数和默认构造函数详解
  2. C++ 类构造函数 & 析构函数
  3. 析构函数的作用和用法
  4. c++ this指针
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值