So is Unity3D C++?
Its written in C++ but you don't program into it with C++ (unless you have a pro license). Instead you can use either: C#, a dialect of javascript (often called unityscript) or Boo.
C# and C++ contrary to popular belief have little to do with each other other than having an upper case C as the first character.
Boo is somewhat like python (with some influence from other languages).
Unityscript is essentially a statically typed version of javascript (no point going into what that means)
So does that mean if Unity3D doesn't have a feature I want, can I code it in?
Yes you can. The kerbal space program has alot of additional features added onto it that the devs had to manually add (the shadows from the sun for instance do NOT use unity point lights, they wrote their own shader)
Does the free version of Unity3D expire?
Its feature restricted and you can't access all pages of the plugin and asset stores. Many of the features cut you can write your own plugins for if you have the know how. Chances are as a beginner you won't hit any of the restricted features. It doesn't have a time limit on it but it does have an income limit. If your company is earning over a certain amount of money then you cannot use the free version. The pro version is only $1500 though (plus an extra $500 for android or iOS support for total of $2500) which although for you would be alot that is actually remarkably cheap for a game engine, the income limit is very high aswell. You are almost certainly going to be fine with the free version.
How much programming experience do you have because as easy as Unity is you can't jump into it with no programming ability.