C/C++/C# are all C variants which will give you some sound basis from which to grow. In addition to learning the language you need to learn a lot of programming concepts and good practices. None of these come easily and will take a lot of time, commitment and determination. You will also need an IDE (Integrated Development Environment) in which to develop and test your programs. These are mostly seriously expensive but I use an excellent one called Unity wwhich you can get for free. There have been stacks of tutorials developed for it, many of them linked in with the package. Download Unity here:
Unity - Game Engine You may use the IDE to develop for a range of platforms such as Android which has two major prerequisies called the Java Development Kit (JDK) and the Android Software Development Kit (SDK). These will need to be downloaded, installed and configured before Inatalling the IDE. Configuring the SDK will need to be done with some guidance as to which component you need to download - see this guide here:
SDK Manager | Android Developers
C# is not a variant of C. C# is a managed language in which is Microsoft's own version of Java after some dispute about the language. Syntax is similar but C++ branched off of C, and C# branched off of Java. Technically they are all their own lanauges at this point in time as there are discrepancies between C and C++, as well as C# and Java that would reveal conflicts if either of them were to be merged into a single language somehow.
Looks like It doesn't know what playerX and playerO is yet because the two strings are below this step in your code? Try putting the
first so that the string happens BEFORE the gameplay/ return 0 and it should work... also
perhaps this should be /// not //
p.s. just guessing because I can't see it run however you get an eye for code after years of looking at giberish

... good luck with it mate.
A comment in C++ is done with '//' so it was originally correct syntax.
----
As for my personal experience with C++, I have a few recommendations and remarks to make about the latest code.
1. 'using namespace std' is not considered good practice because of a few reasons. First however, it defeats the point of namespaces in terms of isolation. Additionally, it pollutes the global namespace which promotes name conflicts.
2. conio.h is not a standard header, and because of that, I wouldn't recommend that you use it
3. The effects of system() are undefined and platform dependent as well. The input string is not encrypted either, which allows for your program to be easily exploited from the standpoint of anything malicious. Most viruses will use other methods however anyways to achieve things, but that doesn't mean the option is not available to an attacker.
4. PlayerX() and PlayerO() functions return a copy of a temporary std::basic_string<char> object. In the first 2 calls you store the return value, in the 3rd and 4th calls to the functions from main() you don't do anything with them, which makes the function call useless:
Code:
string xPlayer = playerX();
string oPlayer = playerO();
// Here
playerX();
playerO();
Your gameplay function also passes them as copies too just to display them. Once you learn about references and const-correctness you'll see how this can be improved even further.
NOTE: I would highly not recommend that you use strings for player identification though. You may use it as a display variable, but that's all the strings should be used for. For identifying player 1 vs player 2. You might want to use strongly typed enum instead. Additionally, when checking for whether it's player 1 or player 2's turn, you don't have the internal string character comparison happening in the background with the overloaded == operator or comparison functions.