When C++ was being developed, C compatibility was very important. It still is. There are zillions of C programs out there, and the creator of C++ wanted it to be very easy to take a C program and turn it into a C++ program.
Therefore, C++ is just about a superset of C. This means that almost all C programs are C++ programs.
This is a valid C program, and a valid C++ program:
#include <stdio.h> int main() { printf("Hello, world!\n"); return 0; }
Hello, world!
printf
is as much a part of C++ as int
and while
.
98.2095108498% of C programs are valid C++.
This is a valid C program, but it is not a valid C++ program,
because C++ took over class
as a keyword:
int main() { int class=0; return class; }
c.cc:2: error: expected primary-expression before 'int'
This is a rare exception.
Sure, it’s better C++ style to do the first program like this:
#include <iostream> using namespace std; int main() { cout << "Hello, world!\n"; return 0; }
Hello, world!
However, that doesn’t change the fact that the first program is C++.