Since you are passing a reference instead of the list itself, you will get 0 after clearing your list.
What you have to do is passing to the class a new List
containing the other list's values:
cl c = new cl(new List(a));
This way, even if you clear the 'main' list, in your class you'll have 1 as items count.
Hope this helps.