Tôi đang làm việc với một cơ sở mã lớn có sử dụng những sản phẩm sau xây dựng suốtSử dụng quá nhiều của `this` trong C++
class MyClass
{
public:
void f(int x);
private:
int x;
};
void MyClass::f(int x)
{
'
'
this->x = x;
'
'
}
Cá nhân, tôi muốn luôn được sử dụng và do đó thích hình thức
class MyClass
{
public:
void f(int x);
private:
int _x;
};
void MyClass::f(int x)
{
'
'
_x = x;
'
'
}
Lý do tôi thích thứ hai là nó gọn gàng hơn (ít mã = ít lỗi tiềm năng hơn), và tôi không thích có nhiều biến cùng tên trong phạm vi cùng lúc mà tôi có thể tránh nó. Điều đó nói rằng, tôi nhìn thấy việc sử dụng cũ hơn và thường xuyên hơn những ngày này. Có cách tiếp cận thứ hai nào mà tôi không biết? (ví dụ như hiệu ứng trên thời gian biên dịch, sử dụng với mã templated, vv ...) Có phải những lợi thế của một trong hai cách tiếp cận đáng kể đủ công đức một refactor khác? Lý do tôi hỏi, rằng trong khi tôi không thích cách tiếp cận thứ hai có trong mã, số lượng công sức và nguy cơ liên quan đến việc đưa thêm các lỗi không hoàn toàn xứng đáng với một trình tái cấu trúc.
Bạn không có câu hỏi gì liên quan đến việc tái cấu trúc hoặc mã hóa. Điều này chỉ liên quan đến quy ước đặt tên mà bạn chọn tuân thủ - điều này buộc bạn phải sử dụng từ khóa 'this' để tránh sự mơ hồ (và sẽ không cần thiết nếu tham số được đặt tên là' y'). – Groo
@Groo, IMO, chọn quy ước đặt tên có khả năng dẫn đến sự mơ hồ của tên biến và do đó lỗi là mùi, vì bị buộc sử dụng 'điều này' để giải quyết sự mơ hồ. Nếu đó là một mùi, và đó là mã tôi có khả năng được làm việc trên, nó có khả năng dẫn đến một refactor. –
Tôi thích sử dụng _x và x theo cách khác, tức là _x là tạm thời, chỉ vì nó là một phím tắt ít hơn. –