课程笔记
课程:C++面向对象开发(上),第一节:头文件与类的声明
C与C++关于数据和函数的区别
C语言中数据与函数是两个部分,数据有自己的类型,这些数据会创建很多
variables
出来,函数就是用来处理这些variables
。这样有一个缺点,由于C语言没有对这些数据提供一些关键词,因此,所有的Functions
都可以处理这些variables
。这回影响后续程序。
C++则不同,它将某些数据与某些函数包在一起,这样数据和函数就不会互相混杂在一起。
将某些数据和函数包在一起就叫做class
,类似C中的struct
,只不过C++中提供了更多的功能在里面。C++中的struct
几乎等同于class
,只有细微的区别。
C++程序代码基本形式
- 在主程序中利用
#include
将头文件或者标准库包含进来,从而这些库称为主程序的一部分。 - 如果是标准库,则使用<>包含:
#include<header files>
, - 自己创建的头文件,则使双引号包含:
#include"header files"
Output:C++与C的区别
#include <iostream.h>
也可以写成#include <iostream>
头文件中的防卫式声明
头文件的一种很正规的写法:
- 前两行的意思是:如果不曾定义过
__COMPLEX__
时,就将__COMPLEX__
定义出来,然后继续。。。 #endif
表示结束- 在书写任何一个头文件,都要加一个这样一个防卫式的声明。
中间部分的内容:complex_test.h
#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;
}
头文件的布局
class的声明
- 该图展示了类一共要有的几个部分。
- 任何一个
class
都有一个class head
。 - 大括号括起来的叫做
class body
。
如果需要一个程序,除了re
和 im
不是double
,其他都一致。此时,为了不再重新构造一个class
,可以写为:
这里T
只是一个符号,可以其他的代替也可以。这里面就不知道T是什么类型,需要在构造时,使用template<typenmae T>
告诉编译器T
是什么。
例如:complex<double> c1(2.5, 1.5)
;说明需要complex
,并且类型是double
。此时,T
就被绑定为double
。