There are two serious problems with it.
Since type Cell has a constructor, you are required to use
a constructor when creating a Cell. So line
Cell c;
is not allowed. The three lines
Cell c;
c.item = x;
c.next = L;
can be replaced by
Cell c(x, L);
Function addToFront needs to allocate a new Cell. But it does not contain the word new. Instead, it allocates Cell c as a local variable, which will disappear as soon as addToFront returns. The pointer, &c, that it returns is a dangling pointer.