main is declared as int main(int argc, char *argv). It takes all arguments given to your program at command line as char arrays, one for each argument. argv is set to the command/program name. The argv array is terminates with the value NULL. argc counts the number of arguments including argv but without the NULL.
Example: May be your program will be called mysupertruperapp then the call mysupertruperapp Hello World results in
argv = "mysupertruperapp"
argv = "Hello"
argv = "World"
argc = 3
As xismn said, you're using a variable called x in main, but you haven't declared it, nor have you given it an initial value.
I notice your Number template class contains a public data member x. Is that really what you intended? None of the methods of Number use it, and many of them hide that data member by declaring an argument of the same name.