It's too complicated IMO. The surface to cover is absolutely huge. Teaching complete novices to program is complicated enough, explaining the difference between char * and std::string and how a char is not really a char if you deal with unicode and OOP and destructors and exceptions and virtual calls and global constructors and RAII and templates and overloading and...
I think it would make more sense to start with a simpler language and work your way to C++ if that's what you want.