21xrx.com
2025-03-26 23:21:10 Wednesday
文章检索 我的文章 写文章
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 中的新特性。

  
  

评论区