C++匿名对象、编译器对拷贝构造和构造的优化等的介绍

文章目录

  • 前言
  • 一、C++匿名对象
    • 1. 匿名对象的生命周期
    • 2. 匿名对象调用成员函数
    • 3. 匿名对象具有常性
  • 二、编译器对拷贝构造和构造的优化
  • 总结


前言

C++匿名对象、编译器对拷贝构造和构造的优化等的介绍


一、C++匿名对象

1. 匿名对象的生命周期

#include 
using namespace std;

class A
{
   
public:
	A(int a)
		: _a(a)
	{
   
		cout << "A(int a)" << endl;
	}

	A(const A& aa)
		: _a(aa._a)
	{
   
		cout << "A(const A& aa)" << endl;
	}

	~A()
	{
   
		cout << "~A()" << endl;
	}
private:
	int _a;
};

int main()
{
   
	A aa1(1); // 有名对象--- 生命周期在局部作用域
	A(1);     // 匿名对象--- 生命周期在当前行   即用即销毁

	return 0;
}

C++匿名对象、编译器对拷贝构造和构造的优化等的介绍_第1张图片

  • 有名对象的生命周期在当前函数局部作用域
  • 匿名对象的生命周期在当前行,即用即销毁

2. 匿名对象调用成员函数

#include 
using namespace std;

class Solution
{
   
public:
	Solution(int a = 10)
		: _a(a)
	{
   
		cout << "Solution(int a)" << endl;
	}
	int sum_solution(int n)
	{
   
		//....
		cout << "int sum_solution(int n)" << endl;

		return n;

	}
	~Solution

你可能感兴趣的:(C++,c++,开发语言,匿名对象,编译器优化)