Stack ADT C++ Functions

  abstract, c++, output, stack, types

So recently i started to getting into stacks ADT in c++ and i am trying to create a small program which the user inserts a string and the output should be in reverse order
But something is going wrong with my code or i am missing something but i cant figure it out
My output so far is that i can insert the string but then it just output the couts "Reverse string" and nothing else
i tried several ways like to change the pop function but nothing changed
Thank you for any help

#include <iostream>
#include <string>

using namespace std;
class ReverseString {
     string str[13];
     int topStack;

ReverseString() {
    topStack = -1;

string Push() {
    //char item;
    string str("");
    cout << "Enter a string " << endl;
    cin >> str;
    for (char ch : str) {

//          str[topStack] = item;
        return str;

string Pop() {
    string temp= str[topStack];
    for (int i = 0; i <= 13; i++) {
        str[i] = temp;
        //temp = str[i - 1];
        cout << "Reverse String: " << str[topStack] << endl; 
        return temp; 

// main function
int main() {
    ReverseString str;

    return 0;

Source: Windows Questions C++