Lec1-Brief Introduction
slides地址
CS106L简介¶
与CS106B比较:

C++简介¶
这三个都是C++能编译通过的代码:
Ccde 1: 标准C++
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
Code 2: 类C
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char *argv) {
printf("%s", "Hello, world!\n");
// ^a C function!
return EXIT_SUCCESS;
}
Code 3: 汇编
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char *argv) {
asm(
"sub $0x20,%rsp\n\t" // assembly code!
"movabs $0x77202c6f6c6c6548,%rax\n\t"
"mov %rax,(%rsp)\n\t"
"movl $0x646c726f, 0x8(%rsp)\n\t"
"movw $0x21, 0xc(%rsp)\n\t"
"movb $0x0,0xd(%rsp)\n\t"
"leaq (%rsp),%rax\n\t"
"mov %rax,%rdi\n\t"
"call __Z6myputsPc\n\t"
"add $0x20, %rsp\n\t"
);
return EXIT_SUCCESS;
}
C 的劣势:
- No objects or classes
- Difficult to write generic code
- Tedious when writing large programs
C++希望做到的(设计哲学):

STL库的优越性:
- Tons of general functionality
- Built in classes like maps, sets, vectors
- Accessed through the namespace
std:: - Extremely powerful and well-maintained