关闭

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

标签: 学习笔记编程语言C++
347人阅读 评论(0) 收藏 举报
分类:

一、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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13326次
    • 积分:675
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:9篇
    • 译文:0篇
    • 评论:10条
    个人说明
    个人很喜欢的一句话, (摘自网络):
    时光荏苒,祝愿不要忘记曾经的初心

    本人现在是一名大二软件工程专业的学生, 每月会坚持更新, 本博客会总结, 整理, 分享个人学习的相关技术知识, 用来记录自己不断进步的历程, 当然内容会以Java为主线.

    虽然是技术博客, 但毕竟是人, 也有自己的情感, 所以, 有时也会分享一些有用的学习资源和一些学习经验和方法, 同时也会写一些其它方面上自己的感受和想法!

    或许我的博客不是写得非常好, 但每一篇文章绝对会用心写! 如果, 你发现有不足或者错误之处, 非常欢迎指出, 当然也欢迎各位小伙伴们来交流技术和学习感受.

    每天进步一点点, 共勉!
    博客专栏
    最新评论