21xrx.com
2024-11-22 11:13:24 Friday
登录
文章检索 我的文章 写文章
C++弱化this指针
2023-06-28 02:25:58 深夜i     --     --
C++ 弱化 this指针

C++ 中的 this 指针是指向当前对象的指针,用于在类的成员函数中访问该对象的成员变量和成员函数。然而,C++11 引入了新的关键字 auto,使得编译器可以自动推断对象类型,因此,this 指针不再是必须的。

另外,C++ 也提供了一些更加简洁的语法,来避免使用 this 指针。比如,在成员函数中,可以直接使用成员变量名来访问该对象的成员变量,而无需使用 this 指针。

例如:


class Person {

public:

 void setAge(int age)

  m_age = age;  // 直接访问成员变量 m_age

 

private:

 int m_age;  // 成员变量

};

此外,在 C++ 中还可以使用 lambda 表达式来避免使用 this 指针。Lambda 表达式是匿名函数,可以在其中使用外部变量,包括类的成员变量。下面的代码演示了如何使用 lambda 表达式来访问 m_age 成员变量。


class Person {

public:

 void setAge(int age) {

  auto lambda = [=] m_age = age; ;  // 使用 lambda 表达式

  lambda();  // 调用 lambda 表达式

 }

private:

 int m_age;  // 成员变量

};

从上面的例子可以看出,C++ 中 this 指针的作用已经被弱化了。虽然仍然可以使用 this 指针来访问对象的成员变量和成员函数,但是编程时不再是必须的。Lambda 表达式的引入使得代码更加简洁,同时也能够更好地利用 C++11 中的新特性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复