C++学习笔记01之类的基本实现过程(头文件的防卫式定义, 具体类的定义和实现, 函数的传递类型和返回类型)

来源:互联网 发布:大唐 数据所 编辑:程序博客网 时间:2024/05/21 07:51

一、C++简介

       首先,C++是一门从C语言(过程式编程语言)演化过来的面向对象的编程语言(OOP)。相对于其它的面向对象的编程语言,如Java、C#,C++具有性能优化和底层开发的特点。同时,C++目前发行的标准有C++98、C++11、C++14(最新的),但作为程序猿而言,目前使用最多的仍是C++98。从一门编程语言的学习角度来看 ,语言本身与其标准库是学习的重点。


二、头文件与类的声明

1. C与C++对比:
关于数据和函数 C++引入类和对象的概念

class分类:Complex和String(with pointer)

2. C++程序基本形式

几种文件格式:.h .cpp .hpp

头文件的防卫式声明:

#ifndef _COMPLEX_#define _COMPLEX_……#endif
class的声明:

准备数据和函数


三、构造函数

1.inline函数(内联)
2.访问级别(public, private, protected)
data和function不同,data一般有封装性
3.创建对象需要构造函数,构造函数名称一定与类的名称相同,无返回值

complex (double r = 0,double i = 0): re(r), im(i){  }
4.函数的overloading
只是函数名相同,但编译器能识别它们;


四、参数传递与返回值

1.ctor(构造函数)一般放在public区
A::getInstance().setup();
2.const member functions(常量成员函数)
不会改变函数内部数据内容
3.参数传递
两种形式:pass by value or reference(to const)
4.返回值传递
pass by value or reference(to const)
5.friend(友元)
相同class的各个objects互为friends


五、操作符重载与临时对象

操作符重载 overloading
操作符可重新定义
1.成员函数
隐藏的this指针
传递者无需知道接受者是以reference形式接收
2.class body之外的各种定义(definitions)
inline 内联函数
3.非成员函数

(无this)temp object(临时对象)
type();

inline complexoperator + (const complex& x){       return x;}
<<的重载:
ostream&operator << (ostream& os, const complex& x) // 传引用,速度快{     return os << '(' << real(x) << ',' << imag(x) << ')';}
共轭复数:
inline complexconj (const complex& x){    return complex(real(x), -imag(x)); // (局部)临时对象}
最后,总结上面Complex类的实现过程:

1.防卫式定义;
2.类的定义,有构造函数(初值列),那些数据,那些函数(成员函数和非成员函数),内联函数,友元函数;
3.函数的传递类型和返回类型。



1 0
原创粉丝点击