C++面向对象开发——头文件与类的声明

课程笔记
课程: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

如果需要一个程序,除了reim 不是double,其他都一致。此时,为了不再重新构造一个class,可以写为:
在这里插入图片描述
这里T只是一个符号,可以其他的代替也可以。这里面就不知道T是什么类型,需要在构造时,使用template<typenmae T>告诉编译器T是什么。
例如:complex<double> c1(2.5, 1.5);说明需要complex,并且类型是double。此时,T就被绑定为double

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值