I am in the process of reading "The C++ Programming Language 4th Edition" and I've gotten to the point where Bjarne is trying to explain concrete classes. His explanation is confusing me, and I cannot find any explanation online that satisfies me. I understand that abstract classes are classes that have at least one virtual function and that concrete classes are the opposite, but I can not wrap my head around concrete classes. The book "Programming Principles and Practice using C++" is saying that a concrete class is essentially a derived class, and an abstract class is a base class. Is this the correct interpretation? I have been trying to figure out this concept all day. Also, "a class that can be used to create objects is a concrete class". Does this mean that a class is concrete if I can do something like "myclass classobject1;", and I am not able to make objects with abstract classes?