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

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

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



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值