CS253: Software Development with C++

Spring 2020

Introduction

Show Lecture.Introduction as a slide show.

CS253 Introduction

Bjarne Stroustrup presents C++ to the Founding Fathers

Origin

B-Strous

Preferences

Dialects

Standards

Standard C++

Standard

An HP co-worker, Donn Terry, used to say “Standard is better than better”. This meant that doing something in the standard way is superior to doing it in a non-standard way, even if the non-standard way yields better results. True enough, as far as it goes.

I want you to learn standard C++. That way, your programs will work everywhere, on any standard-conforming compiler. If you use compiler extensions, non-standard features, then your program will work on that particular compiler, but perhaps not on others. Not so good.

C++ is C

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.

Valid C & C++

This is a valid C program, and a valid C++ program:

#include <stdio.h>
int main() {
    printf("Hello from C!\n");
    return 0;
}
Hello from C!

#include <stdio.h>
int main() {
    printf("Hello from C++!\n");
    return 0;
}
Hello from C++!

printf() is as much a part of C++ as int and while.

97.1303331607% of C programs are valid C++.

C++, not 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.

Better C++

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++.

A Final Note