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

版权声明:本文为 梦蓝樱飞 原创文章,可以随意转载,但真诚希望在明确位置注明原文超链接的出处!!! 非常感谢! https://blog.csdn.net/menglanyingfei/article/details/52562825

一、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.函数的传递类型和返回类型。



阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页