Implement a C++ class called "BankAccount" that represents a bank account with attributes such as account number, account holder's name, and balance. Include methods for depositing money, withdrawing money, and displaying the current balance. Write a main function that demonstrates the usage of this class.

```cpp
#include <iostream>
#include <string>

class BankAccount {
private:
    int accountNumber;
    std::string accountHolderName;
    double balance;

public:
    // Constructor
    BankAccount(int accNum, std::string name, double initialBalance) {
        accountNumber = accNum;
        accountHolderName = name;
        balance = initialBalance;
    }

    // Deposit money into the account
    void deposit(double amount) {
        balance += amount;
    }

    // Withdraw money from the account
    bool withdraw(double amount) {
        if (amount > balance) {
            return false; // Insufficient funds
        } else {
            balance -= amount;
            return true;
        }
    }

    // Display the current balance
    void displayBalance() const {
        std::cout << "Current balance: $" << balance << std::endl;
    }
};

int main() {
    // Create a new bank account with an initial balance of $1000
    BankAccount myAccount(12345, "John Doe", 1000);

    // Deposit $500 into the account
    myAccount.deposit(500);
    myAccount.displayBalance(); // Output: Current balance: $1500

    // Withdraw $200 from the account
    if (myAccount.withdraw(200)) {
        std::cout << "Withdrawal successful!" << std::endl;
    } else {
        std::cout << "Insufficient funds." << std::endl;
    }
    myAccount.displayBalance(); // Output: Current balance: $1300

    // Attempt to withdraw $2000 from the account
    if (myAccount.withdraw(2000)) {
        std::cout << "Withdrawal successful!" << std::endl;
    } else {
        std::cout << "Insufficient funds." << std::endl;
    }
    myAccount.displayBalance(); // Output: Current balance: $1300

    return 0;
}
```