You can use C++ any way you want. You can speak C++ with a "C accent" like you describe. You can use it for OO. You can use it for template metaprogramming. You can use it for all of these at once and for anything in between.
C++ is, quoting its designer/developer, "a multi-paradigm programming language." That means it's designed to support a wide range of programming styles, including procedural, functional, object-oriented, and many more. (Although it does a better job with some of these than others).
So if you want to use C++ as a kind of C with some extra little goodies like references, function overloading, and templates, go right ahead. You aren't obligated to use classes for everything (that would be Java

). You only use them where you need them.
However, if you do use C++ as a glorified C, know that you are only using a small subset of its power.
With your array question, I'm not sure I understand where you're coming from.
You're completely capable of using regular C-style arrays in C++. As they are built-in types, you don't need (or get) to define constructors and methods for them.
If you define an array class, it would probably be nice to include those methods, since your reason for defining the class is that you or someone else is going to subsequently use it.
However, you say "every time you define an array." If you define an array class at all, you probably only do it once, unless you have several highly specialized reasons for doing so. Once you create an array class, you can use it in other programs as well; you should only need to define it once and possibly come back and modify it later.
Of course, unless you have a really good reason for creating your own array class, you should just use the std::vector class template. It's probably better and more efficient than anything you could write, since a library implementor wrote it; plus it's already there - don't reinvent the wheel.