Как создать правильно библиотеку с++?

Столкнулся с проблемой, не знаю как создать библиотеку

header.h

pragma once

#include <string>
using namespace std;

#include <ctime>

class Caesar {

private:
    string baseString;
    string encryptedString;
    int key;

public:
    Caesar();
    Caesar(string base, int k);
    ~Caesar();

    int encryption();
    int decryption();

    const string& getEncryptedString() const;
    const string& getBaseString() const;
    int getKey() const;

    void deleteBaseString();
    void deleteEncryptedString();
    void deleteKey();

};
#include "pch.h"
#include "Header.h"
 
Caesar::Caesar() : baseString(), key(0), encryptedString() {
 
    //The empty body of the constructor
 
}
 
Caesar::Caesar(string base, int k) : baseString(base), key(k), encryptedString() {
 
    //The empty body of the constructor
 
}
 
Caesar::~Caesar() {
 
    //The empty body of the destructor
 
}
 
int Caesar::encryption() {
 
    if (baseString.empty()) {
 
        //The string is empty!
        return 1;
 
    }
 
    char ch = ' ', shift = 0, lastCharater = 90, firstCharacter = 65;
    this->deleteEncryptedString();
 
    for (int i = 0; i < baseString.size(); i++) {
 
        ch = baseString.at(i);
 
        if (isalpha(ch)) {
 
            if (key > 0) {
 
                lastCharater = (islower(ch)) ? 122 : 90;
 
                if (ch + key > lastCharater) {
 
                    shift = ch + key - 26;
 
                } else {
 
                    shift = ch + key;
 
                }
 
 
            } else {
 
                firstCharacter = (islower(ch)) ? 97 : 65;
 
                if (ch + key < firstCharacter) {
 
                    shift = ch + key + 26;
 
                } else {
 
                    shift = ch + key;
 
                }
 
            }
 
            encryptedString.push_back(shift);
 
        } else {
 
            encryptedString.push_back(ch);
 
        }
 
    }
 
    return 0;
 
}
 
int Caesar::decryption() {
 
    if (encryptedString.empty()) {
 
        //The string is empty!
        return 1;
 
    }
 
    char ch = ' ', shift = 0, lastCharater = 90, firstCharacter = 65;
    this->deleteBaseString();
 
    for (int i = 0; i < encryptedString.size(); i++) {
 
        ch = encryptedString.at(i);
 
        if (isalpha(ch)) {
 
            if (key > 0) {
 
                firstCharacter = (islower(ch)) ? 97 : 65;
 
                if (ch - key < firstCharacter) {
 
                    shift = ch - key + 26;
 
                } else {
 
                    shift = ch - key;
 
                }
 
            } else {
 
                lastCharater = (islower(ch)) ? 122 : 90;
 
                if (ch - key > lastCharater) {
 
                    shift = ch - key - 26;
 
                } else {
 
                    shift = ch - key;
 
                }
 
            }
 
            baseString.push_back(shift);
 
        } else {
 
            baseString.push_back(ch);
 
        }
 
    }
 
    return 0;
 
}
 
 
const string & Caesar::getEncryptedString() const {
 
    return encryptedString;
 
}
 
const string & Caesar::getBaseString() const {
 
    return baseString;
 
}
 
int Caesar::getKey() const {
 
    return key;
 
}
 
void Caesar::deleteBaseString() {
 
    baseString.clear();
 
}
 
void Caesar::deleteEncryptedString() {
 
    encryptedString.clear();
 
}
 
void Caesar::deleteKey() {
 
    srand(time(NULL));
 
    key = rand() % 101;
 
}

Ответы (0 шт):