1. C vs C++ 关于数据和函数
- C
- Data
- Functions
- 对于C来说,数据大部分情况是所有函数都可以访问的,这样对程序来说会变得很混乱
- C++
- Data Members
- Member Functions
- 对于C++来说,数据和函数封装在一起形成类,可以设定为数据只能让类里的函数访问,具有良好的组织性
2. C++ 关于数据和函数
- 不带指针 Complex
- 成员
- 成员变量:实部、虚部
- 成员函数:加、减、乘、除、共轭、正弦...
- 初始方式
complex c1(2,1);
complex c2;
complex *pc = new complex(0,1);
- 成员
- 带指针 String
- 成员
- 成员变量:字符(s):其实是个ptr,指向一串字符
- 成员函数:拷贝、输出、附加、插入
- 初始方式
string s1("hello ");
string s2("world ");
string *ps = new string;
- 成员
3. Object Based 基于对象 vs Object Oriented 面向对象
- Object Based:面对的是单一class的设计
- Object Oriented:面对的多重classes的设计,classes和classes之间的关系
4. C++ programs代码基本形式
延伸文件名(extension file name)不一定是.h或者.cpp
也可能是.hpp或者其他或者甚至无延伸名
5. Output C++ vs C
- C++
#include <iostream.h> // #include <iostream> using namespace std; int main() { int i =7; cout << "i=" << i << endl; return 0; }
- C
#include <stdio.h> // #include <cstdio> int main() { int i = 7; printf("i=%d\n",i); return 0; }
6. Header(头文件)的防重复声明
-
complex.h
#ifndef __COMPLEX__ #define __COMPLEX__ ... #endif
-
complex-test.cpp
#include <iostream> #include "complex.h" using namespace std; int main() { complex c1(2,1); complex c2; cout << c1 << endl; cout << c2 << endl; c2 = c1 + 5; c2 = 7 + c1; c2 = c1 + c2; c2 += c1; c2 += 3; c2 = -c1; cout << (c1 == c2) << endl; cout << (c1 != c2) << endl; cout << conj(c1) <<endl; return 0; }