Tôi có hai phương pháp này trên một lớp chỉ khác nhau trong một cuộc gọi phương thức. Rõ ràng, điều này là rất không-DRY, đặc biệt là cả hai đều sử dụng cùng một công thức.Làm cách nào để mã C++ này có nhiều DRY hơn?
int PlayerCharacter::getAttack() {
int attack;
attack = 1 + this->level;
for(int i = 0; i < this->current_equipment; i++) {
attack += this->equipment[i].getAttack();
}
attack *= sqrt(this->level);
return attack;
}
int PlayerCharacter::getDefense() {
int defense;
defense = 1 + this->level;
for(int i = 0; i < this->current_equipment; i++) {
defense += this->equipment[i].getDefense();
}
defense *= sqrt(this->level);
return defense;
}
Làm cách nào tôi có thể dọn dẹp trong C++?
'this.'? Đăng cho chúng tôi một số mã thực. :) – GManNickG
GMan nói gì. Ngoài ra, là các biến toàn cầu 'tấn công' và' phòng thủ 'hay bạn đã bỏ qua định nghĩa của chúng? – sbi
* facepalm * - Vâng, đây là C++ thực đầu tiên của tôi sau nhiều tháng của các ngôn ngữ khác: P. Có thể tệ hơn, tôi có thể thực hiện 'self.' vì phần lớn nó là Python. – Macha