Modernes C++ programmieren

Okt 20, 2024

lst-0022-book.cpp

// https://godbolt.org/z/vb5a3EjcY 
#include <iostream>              // cout
#include "database.hpp"          // include the foreign API

class Database {
    const db_handle_t db_;                         // make constant
public:
    explicit Database(const char* filename);
    ~Database();
    int execute(const char* query);
    Database(const Database&) = delete;            // prohibit copying
    Database& operator=(const Database&) = delete; // prohibit assignment
};
// … Implementations as before …
int main() {
    Database db{ "customers.dat" };
    std::cout << "Count: "<< db.execute("select * from cust") << "\n";
    Database db2{ db };          // (ERR) compiler prevents dangerous copy
    db = db2;                    // (ERR) compiler prevents dangerous assignment
}